Функция is_page() в WordPress используется для проверки, отображается ли текущая страница как «постоянная страница». Вы можете указать ID, ярлык (slug) или заголовок страницы для проверки. Это условный тег, который возвращает true, если текущая страница является постоянной страницей, и false в противном случае.
is_page( $page );
$page(строка/число/объект/массив) — ID, ярлык или заголовок страницы для проверки. Можно указать массив из любых этих значений для проверки нескольких страниц.
Функция возвращает true, если переданный параметр совпадает с текущей страницей. Важно учитывать, что следующие вызовы функции также вернут true:
is_page('')is_page(0)is_page('0')is_page(null)is_page(false)is_page(array())
Будьте внимательны при использовании этой функции, так как она не предназначена для использования внутри Цикла WordPress. Глобальные переменные, используемые в цикле, могут быть изменены, что повлияет на работу is_page(). Для использования этой функции после цикла следует сбросить запрос с помощью функции wp_reset_query().
Пример 1: Проверка отображения любой постоянной страницы
Этот пример показывает, как проверить, отображается ли любая постоянная страница:
if ( is_page() ) {
echo 'Это постоянная страница.';
} else {
echo 'Это не постоянная страница.';
}
Пример 2: Проверка страницы по ID
В этом примере проверяется, отображается ли страница с определенным ID:
if ( is_page(42 ) ) {
echo 'Это страница с ID 42.';
}
Пример 3: Проверка страницы по заголовку
Здесь проверяется, отображается ли страница с определенным заголовком:
if ( is_page('О Нас') ) {
echo 'Это страница "О Нас".';
}
Пример 4: Проверка страницы по ярлыку (slug)
Проверка страницы с ярлыком:
if ( is_page('about-page') ) {
echo 'Это страница со слагом "about-page".';
}
На сайте с кирилицей, где отсутствует автоматическая транслитерация кириллицы, при создании записей происходит некорректное отображение ссылок (post_name). Кириллические символы в ссылках заменяются на спецсимволы (пример: «контакты» превращается в «%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b»). Чтобы функция корректно работала, используйте sanitize_title()
if ( is_page(sanitize_title('про-нас')) ) {
echo 'Это страница со слагом "про-нас".';
}
Пример 5: Проверка нескольких страниц
Можно комбинировать параметры для проверки нескольких страниц одновременно:
if ( is_page([ 42, 'about-page', 'О сайте' ]) ) {
echo 'Это одна из указанных страниц.';
}
Пример 6: Проверка дочерней страницы
В WordPress нет встроенной функции is_subpage(), но можно реализовать её следующим образом:
global $post; // Если за пределами цикла
if ( is_page() && $post->post_parent ) {
echo 'Это дочерняя страница.';
} else {
echo 'Это не дочерняя страница.';
}
Заключение
Функция is_page() является важным инструментом для проверки текущей страницы в WordPress. Она позволяет условно отображать контент, изменять стили и выполнять различные действия в зависимости от того, какая страница загружена. Используйте приведенные примеры в своих проектах для создания динамичного и уникального пользовательского опыта.