WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

is_page_template()WP 2.5.0

Проверяет используется ли файл шаблона для отображения текущей страницы. Можно указать название файла.

Можно указать название конкретного файла для проверки. Например about.php. Если этот файл используется для генерации страницы, то функция вернет true.

Не работает внутри цикла WordPress.

Если указывается название файла шаблона и при этом файл лежит во вложенной папке, то название вложеной папки тоже нужно указать:

is_page_template( 'templates/about.php' )

// иногда (зависит от того как у вас указываются шаблоны)
is_page_template( '/templates/about.php' )
Работает на основе: get_page_template_slug(), get_queried_object_id()
1 раз — 0.00016 сек (быстро) | 50000 раз — 2.95 сек (быстро)

Хуков нет.

Возвращает

true|false.

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

if( is_page_template( $template ) ){
	// ...
}
$template(строка/массив)
Название файла шаблона (с расширением). С версии 4.2. можно указать несколько названий в массиве.
По умолчанию: ''

Примеры

2

#1 Несколько названий шаблонов для проверки

if( is_page_template( [ 'about.php', 'sitemap.php' ] ) ) {
	// используется один из шаблонов
}
else {
	// обычный вывод, без шаблонов
}
1

#2 Проверим используется ли у страницы отдельный шаблон

Этот пример показывает, как проверить указан ли для текущей постоянной странице, отдельный файл шаблона для отображения её контента:

if ( is_page_template() ) {
	// отдельный шаблон используется
}
else {
	// обычный вывод, без шаблонов
}
0

#3 Проверим используется ли файл about.php для отображения страницы

Если отображается страница шаблона "об авторе" (about), то мы может определить её по файлу который отвечает за вывод контента этой страницы. Допустим для этой страницы у нас создан отдельный файл шаблона about.php. Тогда код проверки будет выглядеть так:

if ( is_page_template('about.php') ) {
	// сработает если используется файл 'about.php'
}
else {
	// сработает если 'about.php' не используется
}

Список изменений

С версии 2.5.0 Введена.
С версии 4.2.0 The $template parameter was changed to also accept an array of page templates.
С версии 4.7.0 Now works with any post type, not just pages.

Код is_page_template() WP 6.5.2

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 );
}
8 комментариев
    Войти