web-dev-qa-db-fra.com

Fonctionnement d'une page de blog dans WordPress: la page de blog récupère le premier ID de publication

J'utilise WordPress Static Front Page Process pour attribuer la page d'accueil et la page d'articles. J'ai donc 2 pages: "front" (front-page.php) et "blog" (home.php).

Pour la page "blog", lorsque j'affiche $post->ID après l'init tête (en dehors de la boucle), je ne comprends pas pourquoi WordPress m'envoie le dernier identifiant de publication créé. Il doit normalement afficher l'ID de la page?

Je lis les "Questions qui peuvent déjà avoir votre réponse" sur ce genre de cas et la capacité à utiliser:

get_option('page_for_posts')
  • Mais pourquoi Wordpress fonctionne comme ça?

  • Existe-t-il une variable globale définie?

  • Y a-t-il quelque chose qui me manque dans la hiérarchie des modèles WordPress?

Merci de votre aide

1
Didav

L'objet $ post contient des données pour la requête principale de la page en cours. Donc, dans votre cas, la requête principale sur votre page de garde.php contient les données de la page que vous avez affectée à votre page de garde. Cependant, votre page de blog est une archive et peut contenir plusieurs données de publication. Et dans les deux cas, vous utilisez la boucle pour accéder à ces données.

Peut-être que cette page aidera à en expliquer davantage:

https://developer.wordpress.org/themes/basics/the-loop/

Modifier:

Très bien, je pense que ce dont vous avez besoin, c’est get_queried_object(). Cela renverra l’ID de la page lorsqu’il sera en première page ou sur le blog. L'objet $post contient des données pour le premier message de la boucle, vous devez donc considérer la page de blog comme une archive plutôt qu'une page.

1
ngearing