Проблема с использованием функции is_home()
Потратил сегодня пару часов, пытаясь понять почему функция is_home() возвращает значение TRUE даже если открыта не главная страница блога. Путем тестов выяснилось, что за главную страницу считается любая страница, образованная постраничной навигацией (/page/2, /page/3 и т.д.).

#1, 15 сентября, 2008 в 03:33
Привет. В чем практическая польза данного изменения? Это правиться в коде самого движка или в теме?
#2, 15 сентября, 2008 в 03:39
в шаблоне. используется, например, для показа баннеров только на главной странице. или для показа названия блога только на главной. что с обычным использованием is_home невозможно.
#3, 16 сентября, 2008 в 16:15
По терминологии в документации WP корневая страница блога считается главной, просто она может быть "разбита" на множество страниц :) Кстати, про is_paged() в документации - есть.
Но, насколько я понимаю, начиная с версии 2.5 появилась другая функция, позволяющая определить главную страницу - is_front_page()
#4, 18 сентября, 2008 в 05:45
есть, конечно. но не в описании функции is_home. нельзя физически пересмотреть все существующие функции, чтобы найти почему не работает одна единственная.
вы удивитесь, но с этой функцией абсолютно аналогичная проблема - без is_paged она возвращает TRUE не только с главной ))
#5, 18 сентября, 2008 в 18:07
Все-таки рискну предположить, что вы не очень внимательно читали кодекс. В WP конечно специфические понятия и терминология: main page - это непрерывная "лента" постов, на ней находятся все посты от первого до последнего, кроме автономных страниц (pages). Например, перемещаясь на 2-ю, 3-ю страницу вашего блога, пользователь все еще находится на этой "ленте" постов (главной странице), просто со смещением в n постов.
#6, 22 сентября, 2008 в 19:19
Самое железное решение -- использовать вместо (is_home())
т.к. в зависимости от начинки первой страницы варианты могут быть разные, а такое условие сработает всегда.
#7, 18 ноября, 2008 в 04:15
мда что-то с кодом не получилось, попробую еще раз, был такой:
а чтоб работала фунция is_home() нужно такой:
#8, 22 марта, 2009 в 16:23
Спасибо. Сэкономил время мне. Кстати по запросу is_home в яндексе, эта страница первая, так что не зря старался)
А нужно мне это было чтобы сделать разные названия страницам page/2,3 и т.п. и главной.. Чтобы гугля любил, он в webmasters мне это посоветовал сделать, сказав что у страниц одинаковые названия. Теперь бы еще догнать как в название (title) если else выводить разные названия, например добавлять номер страницы.. Если есть идея рабочая - буду рад.
#9, 14 июля, 2009 в 23:44
Спасибо за работающий рецепт (проверено на 2.7) !
#10, 25 июля, 2009 в 10:52
А если быть более точным, то это надо делать вот так:
#11, 16 августа, 2009 в 19:19
Спасибо за подсказку! в моем слкчае именно is_front_page и помогло! все остальное даже не было смысла пробовать :)
#12, 16 августа, 2009 в 19:27
вы не правы - с is_front_page та же проблема, что и с is_home. я об этом уже выше писал.
#13, 16 августа, 2009 в 19:40
Только что установил на сайте под моим ником (посмотрите), там работает именно is_front_page, а до этого также бился с проблемой is_home!
#14, 16 августа, 2009 в 20:02
у вас на главной выводятся не "Ваши последние записи", а "статическая страница"?
просто если на странице все записи не помещаются и появляется постраничная навигация - WP любую такую страницу тоже считает главной. она типа главная, просто разбита на страницы.
#15, 16 августа, 2009 в 20:12
Навигация для главной у меня не предусмотрена, хотя там и выводятся "последние записи". Очевидно, так оно и есть, как вы написали, если главная разбивается на отдельные страницы...