Проблема с использованием функции is_home()
Потратил сегодня пару часов, пытаясь понять, почему функция возвращает значение TRUE даже если открыта не главная страница блога. Путем тестов выяснилось, что за главную страницу считается любая страница, образованная постраничной навигацией (/page/2, /page/3 и т.д.). Если подумать, то это вполне логично для функций типа - ведь при переходе на вторую страницу определенной рубрики сама рубрика остается той же самой. Но ситуация с is_home() совершенно другая - главных страниц в блоге не может быть больше одной. Вероятно для создателей WordPress понятие "main blog page" сродни категории с таким же названием. Обойти проблему оказалось довольно легко, надо вместо кода:
<?php if ( is_home() ) { ?> <h1>Главная страница!</h1> <?php } else { ?> <h1>Это не главная страница!</h1> <?php } ?> |
Использовать код:
<?php if ( (is_home())&&!(is_paged()) ) { ?> <h1>Главная страница!</h1> <?php } else { ?> <h1>Это не главная страница!</h1> <?php } ?> |
Как вы видите, решение оказалось элементарным. Жаль, что для его поиска пришлось закопаться в форумы поддержки, так как в ничего подобного не нашлось.
Понравился пост? Подпишись на обновления по
RSS или
Twitter !


#21,
что доходить то? это в статье изначально есть.
а кодекс вещь хорошая, но не все там есть и не всегда.
#22,
Ребята, не забывайте о том что если у вас главная страница является статической - то есть вывод заданой page в админке, то такое условие работать не будет. Нужно использовать проверку следующего вида:
is_front_page() - работает сто процентно!
#23,
Василий СПАСИБО!!))) Вожусь уже 2-й час не могу добиться чтоб условие выполнялось. А теперь все работает ЧЕТКО!)
#24,
Вот спасибо, а то рекламу, что то совсем неохота было вручную на каждый пост вставлять. А printf на главной в каждом посте выводил, что тоже не симпатично.
#25,
Ну, зато я эту информацию нашёл в считанные секунды, благодаря твоим трудам ;)
#26,
Спасибо мне как раз функцию is_category() надо было)
#27,
Пойдет, мне помогло, спасибо! :))
#28,
Спасибо огромное! Статья и комментарии ответили на все мои вопросы!
#29,
Отличный выбор! Спасибо за труд и то, что помогли решить вопрос!