is_page_template() WP 2.5.0

Перевіряє, чи використовується файл шаблону для відображення поточної сторінки. Можна вказати назву файлу.

Можна вказати назву файлу для перевірки. Наприклад about.php. Якщо цей файл використовується для створення сторінки, то функція поверне true.

Не працює всередині циклу WordPress .

Якщо вказується назва файлу шаблону і при цьому файл лежить у вкладеній папці, назву вкладеної папки теж потрібно вказати:

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. можна вказати кілька назв у масиві.


За замовчуванням: ”

Приклади

1

#1 Кілька назв шаблонів для перевірки

if( is_page_template( [ 'about.php', 'sitemap.php' ] ) ) ) {
	// використовується один із шаблонів
}
else {
	// Звичайний висновок, без шаблонів
}
0

#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.0The $template parameter був змінений на те, що прийняли array of page templates.
З версії 4.7.0Now works with any post type, немає just pages.

Код is_page_template() WP 6.0.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 );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *