Как работает страница блога в WordPress: страница блога возвращает идентификатор первого сообщения

Я использую WordPress Static Front Page Process, чтобы назначить Front Page и назначить страницу Posts. Поэтому у меня есть 2 страницы: «front» (front-page.php) и «blog» (home.php).

Для страницы «блог», когда я показываю $post->ID после head init (вне цикла), я не понимаю, почему WordPress отправил мне последний созданный идентификатор сообщения. Он обычно должен отображать идентификатор страницы?

Я прочитал «Вопросы, которые могут уже иметь ваш ответ» в отношении такого случая и возможности использования:

 get_option('page_for_posts') 
  • Но почему WordPress работает так?

  • Существует ли глобальный var?

  • Есть что-то, чего мне не хватает в иерархии шаблонов WordPress?

Спасибо за вашу помощь

Solutions Collecting From Web of "Как работает страница блога в WordPress: страница блога возвращает идентификатор первого сообщения"

Объект $ post содержит данные для основного запроса текущей страницы. Таким образом, в вашем случае основной запрос на вашем front-page.php содержит данные со страницы, которую вы назначаете для своей первой страницы. Однако ваша страница в блоге – это архив и может содержать несколько сообщений. И в обоих случаях вы используете цикл для доступа к этим данным.

Возможно, эта страница поможет объяснить еще кое-что:

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

Редактировать:

Хорошо, поэтому я думаю, что вам нужно get_queried_object() это вернет идентификатор страницы, когда на первой странице или в блоге. Объект $post содержит данные для первого сообщения в Loop, вы должны думать о странице блога как Архив вместо страницы.