is_page_template() │ WP 2.5.0
Функция для проверки, используете ли вы шаблон страницы.
Функция is_page_template() позволяет узнать, находитесь ли вы в шаблоне страницы. Вы можете указать название шаблона или массив шаблонов, чтобы сделать проверку более конкретной.
Возвращаемое значение
- true — если проверка успешна (т.е. вы в шаблоне страницы).
- false — если проверка неуспешна.
Использование функции
is_page_template( $template );
Параметры
$template(string|string[]) — имя шаблона или массив шаблонов для проверки. По умолчанию:''(пустая строка).
Примеры использования
1. Проверьте, используется ли отдельный шаблон для страницы
Этот пример показывает, как проверить, имеет ли текущая статическая страница свой отдельный файл-шаблон для отображения контента:
if ( is_page_template() ) {
// используется отдельный шаблон
} else {
// обычный вывод
}
2. Проверьте, используется ли файл about.php
Если страница "about" отображается, мы можем определить это по файлу, который отвечает за вывод содержания этой страницы. Предположим, у нас есть отдельный файл-шаблон about.php. Код для проверки будет выглядеть так:
if ( is_page_template('about.php') ) {
// этот код сработает, если используется файл 'about.php'
} else {
// этот код сработает, если 'about.php' не используется
}
3. Проверка нескольких шаблонов
Вы также можете указать несколько шаблонов, передав массив имен шаблонов.
if ( is_page_template( [ 'about.php', 'sitemap.php' ] ) ) {
// один из шаблонов используется
} else {
// обычный вывод, шаблоны не используются
}
4. Шаблон из подкаталога
Если ваш файл шаблона находится в подкаталоге, вы можете использовать что-то вроде:
if ( is_page_template( 'directory-name/page-about.php' ) ) {
// используется 'page-about.php'
} else {
// 'page-about.php' не используется
}
Это может быть полезно, если вы используете несколько шаблонов страниц и хотите организовать свои файлы.
Изменения в функции
- С версии 2.5.0 — функция была введена.
- С версии 4.2.0 — параметр
$templateтеперь принимает также массив шаблонов. - С версии 4.7.0 — теперь функция работает с любым типом поста, а не только со страницами.
Код функции
Вот пример реализации функции is_page_template() из WordPress:
function is_page_template( $template = '' ) {
if ( ! is_singular() ) {
return false;
}
$page_template = get_page_template_slug( get_queried_object_id() );
if ( empty( $template ) ) {
return (bool) $page_template;
}
if ( $template === $page_template ) {
return true;
}
if ( is_array( $template ) ) {
if ( ( in_array( 'default', $template, true ) && ! $page_template )
|| in_array( $page_template, $template, true )
) {
return true;
}
}
return ( 'default' === $template && ! $page_template );
}
Эта функция проверяет, используется ли определенный шаблон для текущего поста или страницы.
Теперь вы имеете четкое представление о том, как использовать функцию is_page_template() для работы с шаблонами в WordPress!