Получение Шаблона Страницы в WordPress
Функция get_page_template()
предназначена для получения пути к шаблону страницы, который используется на текущей или родительской странице.
Важно: Для блочных тем используйте функцию locate_block_template()
вместо этой.
Иерархия шаблонов
Иерархия шаблонов для страниц выглядит так:
{Имя шаблона}.php
page-{имя_страницы}.php
page-{id}.php
page.php
Пример
Вот как это может выглядеть на вашем сайте:
page-templates/full-width.php
page-about.php
page-4.php
page.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. Если у вас есть вопросы или вы хотите узнать больше, просто задавайте!