Функция is_page_template() в WordPress: проверка шаблона страницы

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!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *