Je veux obtenir le post/ID actuel en dehors de la boucle (dans header.php) et utiliser cet identifiant pour le plug-in Advanced Custom Fields pour obtenir les champs.
Mais je ne peux pas obtenir le bon identifiant de la page d'accueil, de la page d'archive (balise, auteur, catégorie, etc.).
Voici le code
if ( is_singular( 'post' ) ) {
$post_id = $wp_query->post->ID;
echo 'post id' . $post_id;
} elseif ( is_shop() ) {
$post_id = get_option( 'woocommerce_shop_page_id' );
echo 'post id' . $post_id;
} else {
$post_id = get_queried_object_id();
echo 'post id' . $post_id
}
Une autre question, une meilleure méthode pour obtenir l'identifiant pour toute la page en dehors de la boucle? Je crains juste que mon code manque encore une partie du type de page.
get_queried_object_id()
renverra l'ID de la publication ou de la page actuellement affichée, ainsi que la page de couverture statique. Pour tout type de page d'archive ( à l'exception de la date, du type d'article personnalisé et des archives personnelles ), les éléments suivants seront renvoyés:
ID de catégorie de l'archive de catégories en cours de visualisation
ID de balise de l'archive de balises en cours de visualisation
Identifiant de l'auteur de l'archive actuelle de l'auteur
ID de terme pour la page de terme en cours affichée
Si ce n'est pas le cas dans votre cas, vous, votre thème ou le plug-in que vous utilisez utilisez probablement query_posts
quelque part. query_posts
coupe l'objet de requête principal et réinitialise l'objet de requête principal en requête personnalisée à l'aide de query_posts
. C'est pourquoi vous devriez jamais jamais ue query_posts