Получение Шаблона Страницы в WordPress: Использование и Иерархия

Получение Шаблона Страницы в WordPress

Функция get_page_template() предназначена для получения пути к шаблону страницы, который используется на текущей или родительской странице.

Важно: Для блочных тем используйте функцию locate_block_template() вместо этой.

Иерархия шаблонов

Иерархия шаблонов для страниц выглядит так:

  1. {Имя шаблона}.php
  2. page-{имя_страницы}.php
  3. page-{id}.php
  4. page.php

Пример

Вот как это может выглядеть на вашем сайте:

  1. page-templates/full-width.php
  2. page-about.php
  3. page-4.php
  4. 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. Если у вас есть вопросы или вы хотите узнать больше, просто задавайте!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *