На странице архива моих сообщений, вне цикла, get_the_id () возвращает ID самого верхнего сообщения
1 ответ
- голосов
Разобрался.используйте is_home()
,чтобы определить,является ли это страницей архива сообщений.своего рода нелогичный,потому что я всегда думал,что эта функция должна определять,является ли это домашней страницей,обнаружил,что для этого есть is_front_page()
.
Figured it out. use is_home()
to detect if its the posts archive page. kind of counter-intuitive because i always thought that function was to determine if it's the homepage, found out there's a is_front_page()
for that.
Я пытаюсь получить идентификатор страницы архива моих сообщений. Он устанавливается через администратора в качестве страницы сообщений,поэтому у него уже есть запрос по умолчанию. Я использую шаблон
index.php
. Пробовал использоватьpage-blog.php
,но,поскольку я установил эту страницу в качестве архива сообщений,он использовалindex.php
вместо этого (это немного сбило с толку).echo get_the_id()
возвращает идентификатор моей самой популярной записи в блоге (в данном случае прикрепленной) вместо идентификатора страницы. Я не в курсе.Здесь есть похожий вопрос: Идентификатор страницы сообщений/блогов но цель немного отличается,и решение состоит в том,чтобы вместо этого использовать
get_option('page_for_posts')
для получения идентификатора архива сообщений,мне нужен способ определить,нахожусь ли я на странице архива сообщений.Я пробовал использовать:
но это не сработало,потому что глобальный объект
$post
,похоже,ссылается на мою прикрепленную запись,а не на мою страницу архиваНайденные мной ответы кажутся обходными путями,но не решают основную проблему,которая связана с ошибкой
$post
. Что-то мне не хватает,или я должен действовать по-другому? Мне явно нужно,чтобы страница архива моих сообщений не была моей домашней страницей.