WordPress как на ладони
wordpress jino

is_front_page() WP 2.5

Проверяет отображается ли главная (домашняя) страница сайта. Условный тег.

Тег сработает в любом случае: будь это страница с выводом последних постов или страница где для главной страницы сайта установлена статическая страница.

Когда для главной установлена статическая страница, is_home() уже не работает на главной, а работают: is_front_page(), is_singular(), is_page()

В настройках Параметры > Чтение > На главной странице отображать (Settings > Reading > Front page displays) можно установить статическую страницу для главной и статическую страницу для вывода последних постов. is_front_page() в любом случае будет работать для главной страницы сайта, а is_home() будет срабатывать только для страницы с выводом последних постов.

На страницах пагинации этот тег будет также срабатывать: /page/2 - будет считаться главной.

Смотрите аналогичную функцию is_home().

Работает на основе: WP_Query::is_front_page()
✈ 1 раз = 0.001879с = очень медленно | 50000 раз = 3.20с = быстро PHP 7.1.2, WP 4.7.5

Хуков нет.

Возвращает

true или false зависит от выполнения условия.

Использование

if( is_front_page() ) {
   //код
}

Примеры

#1. Обычный пример использования:

if( is_front_page() ){
	 echo "Это главная страница";
}
else {
	 echo "это не главная страница";
}

#2 Опции «главной страницы» и «страницы записей»

Опции где хранятся ID страниц, который установлены для «главной страницы» и для «страницы записей»:

// ID постоянной страницы, которая указана как главная страница сайта
get_option('page_on_front');

// ID постоянной страницы, которая указана как страница блога (последних записей сайта)
get_option('page_for_posts');

Код is front page: wp-includes/query.php VER 4.9.1

<?php
function is_front_page() {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1.0' );
		return false;
	}

	return $wp_query->is_front_page();
}

Cвязанные функции

Из метки: Условные теги (типов страниц и запросов )

Еще из метки: Условные теги (все)

Еще из раздела: Запросы

is_front_page 15 комментариев
Полезные 2 Вопросы 1 Все
  • ws256 cайт: www.vmasshtabe.ru

    пагинация учитывается, исправьте. И в кодексе об этом ни слова. wp-includes/query.php строка 3256
    чтобы пагинация не учитывалась надо вот так:

    <?php if ( is_front_page() && !is_paged()){ ?>
    Ответить5.5 лет назад #
    • Kama4697

      Спасибо за поправку! Отредактировал.

      Странно, я проверял, когда описывал эту функцию, видимо разработчики поменяли свойства тега.

      -1
      Ответить5.5 лет назад #
    • Сергей

      Спасибо. Как раз то что искал! smile

      Ответить3.5 года назад #
  • Serg

    Этот тег учитывает пагинацию, т.е. страница /page/2 будет также считаться главной.

    Из этой формулировки следует, что таки НЕ учитывает. Т.е. тоже самое что и is_home:

    is_home() не учитывает пагинацию, т.е. на страницах типа: /page/2, /page/3 он будет возвращать true (будет срабатывать).

    Где же правда?

    Ответить4.7 года назад #
    • Kama4697

      Спасибо за коммент, поправил.

      1
      Ответить4.7 года назад #
      • Serg

        Хм..
        Читаем тут:

        На страницах пагинации этот тег будет также срабатывать: /page/2 будет считаться главной.

        Читаем там

        На страницах пагинации этот тег будет также срабатывать: /page/2 будет считаться главной.

        Ответить4.7 года назад #
  • Роман cайт: www.romangorbunov.com

    Спасибо, помогли разобраться. Это то, что я искал. dash

    Ответить2.1 года назад #
  • А существует ли возможность программной установки статической страницы в качестве главной?

    Ответить1.6 года назад #
    • Kama4697

      Установите ID нужных страниц в эти опции:

      // ID постоянной страницы, которая указана как главная страница сайта
      update_option('page_on_front');
      
      // ID постоянной страницы, которая указана как страница блога (последних записей сайта)
      update_option( 'page_for_posts' );
      Ответить1.6 года назад #
  • Игорь14 cайт: nebster.net

    Вопрос на засыпку - как в админке отловить когда мы на странице редактирования страницы, которая определена настройками как главная?
    Код

    if( is_admin() && is_front_page() ) 

    Не подходит

    1
    Ответить1.6 года назад #
    • Kama4697

      В WordPress есть 2 опции на этот счет:

      // ID постоянной страницы, которая указана как главная страница сайта
      $front_page_id = get_option('page_on_front');
      
      // ID постоянной страницы, которая указана как страница блога (последних записей сайта)
      $blog_page_id = get_option( 'page_for_posts' );

      П.С. Продублируйте пожалуйста этот вопрос в вопросы, спасибо!

      Ответить1.6 года назад #
  • Елена Шикова cайт: trip-together.ru

    Здравствуйте! У меня не работает is_front_page(), хотя выбрано в админке отображать последние записи. Дело в том, что index.php почти на голом html, кроме include header, footer и 5 последних записей, я его сама написала, может нужно какие-то флаги добавить, чтобы страница определялась, как главная? is_home() работает, но очень надо чтобы работало is_front_page().

    Ответитьмесяц назад #

Здравствуйте, !

Ваш комментарий
Предпросмотр