Когда использовать is_home () против is_front_page ()?


66

Я обнаружил, что, по- is_front_pageвидимому, возвращается значение true, когда я просматриваю домашнюю страницу и мне назначается один прикрепленный пост.

Он также возвращает true, когда я назначил страницу в качестве статической главной страницы через Настройки> Чтение .

Почему я хотел бы использовать is_home()?

Ответы:


65

is_front_page()возвращает истину , если пользователь находится на странице или странице сообщений , который установлен на первую страницу на Настройки-> читального> Ваших главной страницы дисплеях

Таким образом, если вы установите about usв качестве главной страницы, то это условие будет истинным только при показе страницы о нас .

is_home() вернуть true, когда на странице списка сообщений, как правило, это страница, которая показывает последние 10 сообщений.

Если настройки под дисплеями вашей домашней страницы остаются по умолчанию, тогда домашняя страница вернет true для обоих is_front_page()иis_home()

Пример использования is_home():

  • Вы установили страницу сообщений на страницу под названием Новости .
  • Пользователь перемещается туда и в шапке вы хотите показать дополнительную навигацию
  • Вы можете использовать is_home()для этого.

18
Именно так. Я различаю следующее: is_front_page()возвращает true при просмотре главной страницы сайта (независимо от того, отображает ли индекс сообщений блога или статическую страницу), а is_home()возвращает true при просмотре индекса сообщений блога (отображается ли на главной странице или на статической странице).
Чип Беннетт

3

Я обнаружил это is_home()и is_front_page()не доставляю то, что ожидается для мультисайтов. Мой обходной путь с использованием встроенных в PHP вкусностей:

if($_SERVER['REQUEST_URI'] == '/') {
    // you must be on the home page
}

Как упоминалось в комментариях, этот подход не будет работать для экземпляров WP, установленных в подкаталогах веб-корня. Используйте по своему усмотрению.


Пожалуйста, опишите, как это не дает ожидаемого.
Кристина Купер

На нескольких площадках основного сайта в , если вы используете какой - либо форме is_home()или is_front_page()на статической или блога Frontpage функции будут как вернуть ложь.
Дилан Пирс

1
Я только что протестировал оба условия в многосайтовой среде, и оба вернули true, когда я посетил соответствующие /страницы.
Кристина Купер

Я использую WordPress VVV box с мультисайтовым плагином: github.com/Varying-Vagrant-Vagrants/vvv-multisite. Возможно, на нем что-то неправильно настроено? Независимо от того, чтобы просто оставить ответ для обходного пути, если кто-нибудь придет с подобной ситуацией.
Дилан Пирс

Ваш код почти идеален, единственное, что: если WP установлен в подкаталог, например / blog или / wordpress. Чем это будет бесполезно.
Ремзи Кавдар

1

Вы хотели бы использовать, is_home()когда вы хотите проверить, просматривает ли пользователь ваш список сообщений в блоге (обычно установлено отображение 10 сообщений на странице). Если home.phpв вашей теме есть файл, он будет отображаться, когда is_home()условие выполнено.

Ниже можно , возможно , удалить некоторую путаницу , а также: когда is_front_page()и is_home()условия, как это верно, то шаблон front-page.phpбудет использоваться вместо home.php.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.