web-dev-qa-db-fra.com

Sur la page d'archive de mes articles, en dehors de la boucle, get_the_id () renvoie l'identifiant de l'article le plus haut.

J'essaie d'obtenir l'ID de la page d'archive de mes publications. Il est défini via l'administrateur en tant que page de messages, de sorte qu'il contient déjà la requête par défaut. Le modèle que j'utilise est index.php. J'ai essayé d'utiliser page-blog.php, mais depuis que j'ai défini cette page comme l'archive des publications, elle a utilisé index.php à la place (elle a en quelque sorte été ébranlée).

echo get_the_id() renvoie l'ID de mon premier article de blog (dans ce cas, un post-it), au lieu de l'ID de la page. Je suis en dehors de la boucle.

Il y a une question similaire ici: ID pour la page de messages/blogs mais l'objectif est légèrement différent et la solution consiste à utiliser plutôt get_option('page_for_posts') pour obtenir l'archive de messages. ID, il me faut un moyen de détecter si je suis dans la page d’archive des articles.

J'ai essayé d'utiliser:

if (is_page('blog')){ $current_id = get_option('page_for_posts')

mais cela n'a pas fonctionné car l'objet global $post semble faire référence à mon post-it au lieu de ma page d'archive

Les réponses que j'ai trouvées semblent être des solutions de contournement, mais ne résolvent pas le problème sous-jacent qui est le $post screwup. Y a-t-il quelque chose qui me manque ou qui devrait être fait d'une autre manière? J'ai explicitement besoin que ma page d'archives de messages ne soit pas ma page d'accueil.

2
George Ananda Eman

Deviner. utilisez is_home() pour détecter s’il s’agit de la page d’archive des publications. un peu contre-intuitif parce que j’ai toujours pensé que cette fonction consistait à déterminer s’il s’agissait de la page d’accueil. Nous avons découvert qu’il existait une is_front_page() pour cela.

4
George Ananda Eman