Celui-ci est assez étrange.
Ce code:
$post->ID
Affiche le bon ID à chaque fois, sauf la page de blog (la page définie comme blog sur /wp-admin/options-reading.php).
Sur cette page, $ post-> ID renvoie l'ID du premier article de blog pour une page donnée.
Maintenant, la partie la plus délicate, j'ai essayé de supprimer toutes les boucles de toutes mes pages, le fichier loop.php totalement effacé, désactivé tous les widgets susceptibles d'affecter $ post et il renvoie toujours le mauvais ID.
Des allusions?
Mon index.php est assez standard:
<?php get_header();?>
<?php get_template_part( 'loop', 'index' ); ?>
<?php get_footer(); ?>
Et le loop.php est:
<?php while ( have_posts() ) : the_post(); ?>
contents
<?php endwhile; ?>
Peut-être que le problème est que j'essaie d'obtenir l'ID dans header.php?
Et oui, wp_reset_postdata()
ne semble pas aider aussi: /
Sur cette page, $ post-> ID renvoie l'ID du premier article de blog pour une page donnée.
Voilà comment cela fonctionne. $post
est défini sur le premier message de la boucle. Sur des publications et des pages uniques identiques à la publication ou à la page. Sur les pages d'archives, il s'agit du premier article du jeu de résultats. Et si vous y réfléchissez, les deux sont vraiment la même chose. Les articles et les pages uniques n'ont qu'un résultat dans l'ensemble qui correspond à l'article ou à la page que vous attendez.
Maintenant, la partie la plus délicate, j'ai essayé de supprimer toutes les boucles de toutes mes pages, le fichier loop.php totalement effacé, désactivé tous les widgets susceptibles d'affecter $ post et il renvoie toujours le mauvais ID.
La requête principale s'exécute avant le chargement de votre modèle et $post
est défini dans ce processus. Supprimer des éléments du modèle ne changera rien à cela.
Des allusions?
Oui. Ne comptez pas sur $post
sauf dans une boucle appropriée. Si vous avez besoin d’informations sur la page elle-même, utilisez:
$pobj = get_queried_object();
var_dump($pobj); // debugging
http://codex.wordpress.org/Function_Reference/get_queried_object