Получение шаблонов страниц в 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.