Коли використовувати is_home () vs is_front_page ()?


66

Я виявив, що, як is_front_pageвидається, повертається правдою, коли я переглядаю домашню сторінку і там присвоюється один клейкий пост.

Він також повертається істинним, коли я призначив сторінку як статичну передню сторінку через Налаштування> Читання .

Чому я коли-небудь хотів би використовувати is_home()?

Відповіді:


65

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

Отже, якщо ви вказали about usяк головну сторінку, то це умовне значення буде справедливим лише у тому випадку, якщо відображатиметься сторінка про нас .

is_home() повернути істину, коли на сторінці списку публікацій. Це звичайно сторінка, де відображаються останні 10 публікацій.

Якщо параметри під дисплеями Вашої домашньої сторінки залишені за замовчуванням, тоді домашня сторінка повернеться істинною для обох is_front_page()таis_home()

Приклад використання is_home():

  • Ви встановили сторінку своїх публікацій на сторінку під назвою Новини .
  • Користувач пересувається туди, і в заголовку ви хочете показати додаткову навігацію
  • Ви можете використати is_home()для цього.

18
Саме так. Я розмежую наступним чином: is_front_page()повертає істину під час перегляду передньої сторінки сайту (незалежно від того, чи відображається індекс публікацій блогу чи статична сторінка), а is_home()повертає істину під час перегляду індексу повідомлень у блозі (відображається на головній сторінці чи на статичній сторінці).
Чіп Беннетт

3

Я виявив це is_home()і is_front_page()не доставляю того, що очікується для мультисайтів. Моє вирішення використання вбудованих PHP смаколиків:

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

Як зазначалося в коментарях, цей підхід не працюватиме для випадків WP, встановлених у підкаталогах веб-кореня. Використовуйте на свій розсуд.


Будь ласка, детальніше розкажіть про те, як це не забезпечує те, що очікується.
Крістін Купер

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

1
Я просто перевірив обидва умови на багатосайтовому середовищі, і обидва повернулися справжніми, коли я відвідав відповідні /сторінки.
Крістін Купер

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

У вас код майже ідеальний, єдине: що робити, якщо WP встановлений у підкаталозі, наприклад / блозі або / 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.