is_page_template

Проверяет используется ли для вывода страницы отдельный файл шаблона. Возвращает true/false.

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

Этот условный тег не работает внутри цикла WordPress.

✈ 1 раз = 0.00016с = быстро | 50000 раз = 2.95с = быстро

Хуков нет.

Возвращает

true или false.

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

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

Примеры

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

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

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

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

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

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

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

<?php
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 );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *