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.
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.