Функция get_page_template_slug()
в WordPress предназначена для получения имени файла шаблона, который назначен определенной странице. Это может быть полезно, когда требуется узнать, какой шаблон используется для конкретной страницы, и выполнять действия в зависимости от этого шаблона.
get_page_template_slug( int $page_id = 0 )
Параметры:
$page_id
(int|WP_Post): Необязательный параметр. Идентификатор страницы или объектWP_Post
. Если не указан, используется идентификатор текущей страницы в глобальном контексте.
Возвращаемое значение:
- (string|false) Возвращает имя файла шаблона страницы (например,
file-name.php
). Если шаблон не установлен или страница не существует, возвращается пустая строка. Если пост не найден, возвращаетсяfalse
.
Работает на основе
Функция использует следующие внутренние функции WordPress:
Используется для:
- Функция
is_page_template()
Пример 1: Получение шаблона текущей страницы
$template_slug = get_page_template_slug();
if ( ! empty( $template_slug ) ) {
echo 'Текущий шаблон страницы: ' . $template_slug;
} else {
echo 'Шаблон страницы не установлен или страница не существует.';
}
Этот код позволяет получить имя шаблона текущей страницы. Если шаблон не установлен, функция вернет пустую строку.
Пример 2: Получение шаблона страницы по ID
$page_id = 123; // ID страницы, для которой нужно получить шаблон
$template_slug = get_page_template_slug( $page_id );
if ( ! empty( $template_slug ) ) {
echo 'Шаблон страницы с ID ' . $page_id . ': ' . $template_slug;
} else {
echo 'Шаблон страницы не установлен для страницы с ID ' . $page_id;
}
Этот пример показывает, как можно получить шаблон для страницы с конкретным ID. В случае отсутствия шаблона возвращается пустая строка.
Пример 3: Оптимизированный способ:
Если у вас уже есть объект WP_Post
, можно передать его напрямую:
$post = get_post( 123 );
echo get_page_template_slug( $post );
Это может быть немного быстрее, чем передача только ID страницы.
Пример 4: Поиск страниц с определенным шаблоном
$template_filename = 'templates/template-wide.php';
$pages_with_template = get_pages( [
'meta_key' => '_wp_page_template',
'meta_value' => $template_filename
] );
if ( $pages_with_template ) {
foreach ( $pages_with_template as $page ) {
echo 'Страница ID: ' . $page->ID . ' использует шаблон: ' . $template_filename;
}
} else {
echo 'Нет страниц, использующих шаблон ' . $template_filename;
}
Этот код возвращает список страниц, которые используют указанный файл шаблона. Если таких страниц нет, функция вернет false
.
Заключение
Функция get_page_template_slug()
предоставляет эффективный способ получения имени шаблона страницы в WordPress. Она позволяет разработчикам проверять назначенные шаблоны и выполнять действия на основе этой информации. В комбинации с другими функциями WordPress, такими как get_post_meta()
, она помогает в динамическом управлении шаблонами и контентом страниц.