web-dev-qa-db-fra.com

Obtenir "trop ​​de redirections" lors de l'utilisation de wp_redirect pour la page de pièce jointe

Le code provient du codex:

<?php wp_redirect( get_permalink( $post->post_parent )); exit; ?>

J'ai ajouté ce qui précède, dans une page attachée vide.php. Lorsque je visite une page de pièce jointe (par exemple. http://example.com/?attachment_id=2071 ), l'erreur se produit:

"Cette page Web a une boucle de redirection ERR_TOO_MANY_REDIRECTS"

Pourquoi?

METTRE À JOUR:

Sur la base de la réponse donnée, j'ai mis à jour mon code pour:

if($post->post_parent != 0):
    wp_redirect(get_permalink($post->post_parent));
else:
    wp_redirect(get_permalink(2));
endif;
exit;

Ainsi, si le post_parent == 0, il reviendra à la page d'accueil. Je ne sais pas si je devrais être attrapé pour autre chose. Mais cela semble fonctionner.

Merci à Ignat B. d’avoir expliqué ce qui se passait. J'ai quelques pièces jointes qui ont post_parent = 0. Et il vient de se passer que le lien que j'essayais était l'un d'entre eux.

1
gdaniel

Considérant WordPress Codex , et Hiérarchie des modèles WordPress - pièces jointes stockées sous forme d'enregistrements postaux .

Votre code effectue une redirection de boucle vers la même page. Le cas le plus raisonnable est:

Votre $post->post_parent égal à 0. Si vous faites un var_dump(get_permalink($post->post_parent));, vous remarquerez que la sortie sera la même URL de page.

0
Ignat B.