WordPress Россия

Решение проблемы is_home, когда открывается не главная страница блога

Добавлено 12 мая 2010 в категорию Плагины.

Потратил сегодня пару часов, пытаясь понять, почему функция is_home() возвращает значение TRUE даже если открыта не главная страница блога. Путем тестов выяснилось, что за главную страницу считается любая страница, образованная постраничной навигацией (/page/2, /page/3 и т.д.). Если подумать, то это вполне логично для функций типа is_category() – ведь при переходе на вторую страницу определенной рубрики сама рубрика остается той же самой. Но ситуация с 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 } ?>

Как вы видите, решение оказалось элементарным. Жаль, что для его поиска пришлось закопаться в форумы поддержки, так как в документации ничего подобного не нашлось.

Категории