Функция 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. Она позволяет условно отображать контент, изменять стили и выполнять различные действия в зависимости от того, какая страница загружена. Используйте приведенные примеры в своих проектах для создания динамичного и уникального пользовательского опыта.