Получение Шаблона Страницы в WordPress
Функция get_page_template() предназначена для получения пути к шаблону страницы, который используется на текущей или родительской странице.
Важно: Для блочных тем используйте функцию locate_block_template() вместо этой.
Иерархия шаблонов
Иерархия шаблонов для страниц выглядит так:
{Имя шаблона}.phppage-{имя_страницы}.phppage-{id}.phppage.php
Пример
Вот как это может выглядеть на вашем сайте:
page-templates/full-width.phppage-about.phppage-4.phppage.php
Путь к шаблону и иерархия шаблонов могут изменяться с помощью динамических хуков '$type_template_hierarchy' и '$type_template', где $type — это 'page'.
Использует: get_query_template()
Время выполнения:
- 1 раз — 0.0007071 сек (медленно)
- 50000 раз — 1.84 сек (быстро)
Возврат
Функция возвращает строку: полный путь к файлу шаблона страницы.
Использование
Чтобы получить шаблон текущей страницы, используйте следующую функцию:
get_page_template();
Пример
Вот пример, как получить и вывести файл шаблона текущей страницы:
echo get_page_template();
//> /home/public_html/wp-content/themes/theme-name/page.php
Примечания
- Для более глубокого изучения, ознакомьтесь с функцией
get_query_template().
Изменения
- С версии 1.5.0: Функция была введена.
- С версии 4.7.0: Код для страниц с многоязычными символами был добавлен в начале иерархии шаблонов.
Код функции
Ниже приведён оригинальный код функции get_page_template():
function get_page_template() {
$id = get_queried_object_id();
$template = get_page_template_slug();
$pagename = get_query_var( 'pagename' );
if ( ! $pagename && $id ) {
/*
* Если статическая страница установлена как главная, $pagename будет не определён.
* Получим его из запрашиваемого объекта.
*/
$post = get_queried_object();
if ( $post ) {
$pagename = $post->post_name;
}
}
$templates = array();
if ( $template && 0 === validate_file( $template ) ) {
$templates[] = $template;
}
if ( $pagename ) {
$pagename_decoded = urldecode( $pagename );
if ( $pagename_decoded !== $pagename ) {
$templates[] = "page-{$pagename_decoded}.php";
}
$templates[] = "page-{$pagename}.php";
}
if ( $id ) {
$templates[] = "page-{$id}.php";
}
$templates[] = 'page.php';
return get_query_template( 'page', $templates );
}
Связанные функ��ии
add_theme_support()bloginfo()body_class()current_theme_supports()get_custom_header_markup()get_custom_logo()- и многие другие...
Это основные моменты, которые помогут вам понять и использовать функцию get_page_template() в WordPress. Если у вас есть вопросы или вы хотите узнать больше, просто задавайте!