Получение шаблонов страниц в WordPress: функция get_page_templates()

Получение шаблонов страниц в WordPress

Что такое get_page_templates()?

Функция get_page_templates() предназначена для получения доступных шаблонов страниц в текущей теме WordPress. С её помощью вы можете узнать, какие шаблоны доступны для редактируемой страницы.

Использование

Функция использует метод WP_Theme::get_page_templates(), который возвращает список файлов шаблонов, ключи которых являются именами файлов, а значения - их описаниями.

Возвращаемое значение

Функция возвращает массив строк, где ключи — это имена файлов шаблонов, а значения — наименования шаблонов.

Синтаксис

get_page_templates( $post, $post_type );

Параметры:

  • $post (WP_Post | null): Запись, которая редактируется. Используетс�� для контекста. По умолчанию — null.
  • $post_type (string): Тип записи, для которого нужно получить шаблоны. По умолчанию — 'page'.

Примеры использования

Пример 1: Использование метода get_page_templates() класса WP_Theme

Вместо использования функции get_page_templates(), рекомендуется использовать метод класса WP_Theme. В этом случае вам не нужно подключать дополнительные файлы.

$templates = wp_get_theme()->get_page_templates();
print_r( $templates );

Возвращаемое значение:

Array
(
    [my-custom-page.php] => My permanent page template
    [my-page-templates/my-second-page.php] => Another template for a permanent page
)

Как вы можете видеть, ключ — это имя файла шаблона, а значение — его описание.

Пример 2: Отображение названий статических шаблонов страниц

Предположим, что в вашей теме есть два шаблона для статических страниц: "Архивная страница" и "Одна колонка, без навигационного меню":

include( ABSPATH . '/wp-admin/includes/theme.php' );

$templates = get_page_templates();

print_r( $templates );

/* вернет:
Array (
    [Архивная страница] => page_archive-template.php
    [Одна колонка, без навигационного меню] => page_one-column-template.php
)
*/

foreach ( $templates as $template_name => $template_filename ) {
   echo "$template_name ($template_filename)
"; } /* Возвращает: Архивная страница (page_archive-template.php) Одна колонка, без навигационного меню (page_one-column-template.php) */

Изменения

  • С версии 1.5.0: Функция была введена.
  • С версии 4.7.0: Добавлен параметр $post_type.

Код функции get_page_templates()

function get_page_templates( $post = null, $post_type = 'page' ) {
    return array_flip( wp_get_theme()->get_page_templates( $post, $post_type ) );
}

Связанные функции

Вы также можете ознакомиться с другими функциями, связанными с темами:

  • add_theme_support()
  • bloginfo()
  • body_class()
  • get_custom_header_markup()
  • И другими.

Используйте эти функции для расширения функционала вашей темы и улучшения опыт пользователей вашего сайта на WordPress.

Leave a Reply

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