is_archive() возвращает false на странице архивов

11 июл. 2011 г., 22:18:03
Просмотры: 17.7K
Голосов: 4

Я следовал официальной документации для создания своей страницы архивов: http://codex.wordpress.org/Creating_an_Archive_Index

Все работает нормально, за исключением того, что "is_archive() возвращает false, когда я нахожусь на этой странице.

Есть идеи?

0
Все ответы на вопрос 2
0

Потому что страница "архивов" — это страница (Page), а не архивный индекс записей блога (Posts).

Страница "архивов" — это просто пользовательский шаблон страницы, который применяется к статической странице.

Условный тег is_archive() возвращает true, если отображается архивный индекс. Архивная индексная страница отображает записи (Posts), а не статические страницы (Pages).

РЕДАКТИРОВАНИЕ

Вместо использования if ( is_archive() ) попробуйте применить if ( is_page( 'archives' ) ) (предполагая, что ваша статическая страница названа Архивы).

Альтернативно, можно использовать if ( is_page_template( 'archives.php' ) ) (если ваш файл шаблона назван archives.php).

11 июл. 2011 г. 22:31:31
0

Вышеуказанные решения не сработали для меня, потому что я делал это внутри цикла. Вместо этого я использовал проверку !is_single(), чтобы определить, нахожусь ли я на странице записи или на главной странице:

if ( 'post' == $ptype && !is_single() )

15 июл. 2021 г. 22:24:25