get_page_templates() WP 1.5.0

Отримує всі існуючі шаблони поточної теми (активної теми).

Функція переглядає всі файли теми на наявність рядка Template Name: Название шаблона.

Для роботи у фронті, потрібно підключити файл:

require_once ABSPATH. '/wp-admin/includes/theme.php';

Замість цієї функції іноді зручніше використовувати конструкцію wp_get_theme()->get_page_templates() . Тоді немає потреби підключати файл.

Однак, масив, що повертається, відрізняється – в ньому перевернуті ключі і значення. У ключі буде назва файлу, а у значенні назва шаблону. Див. Приклад 2.

Працює на основі:
WP_Theme::get_page_templates()
Основа для:
Хуків немає.

Повертає

Строку[]. Ключі масиву – це назви шаблону сторінки, а значення – називання php файлу:

Array (
	[Назва шаблону сторінки] => page_template-file.php
	[Назва шаблону сторінки 2] => page_template-file2.php
)

Використання

$templates = get_page_templates();
$post
(WP_Post/null)
Сторінка, що редагується. Зазвичай, цей параметр не вказується.


Типово: null
$post_type
(рядок)
Тип запису, шаблони для якого потрібно отримати. З версії 4.7.


За замовчуванням: ‘page’

Приклади

За промовчанням, виклик функції може викликати помилку. Щоб функція працювала, потрібно підключити файл у якому вона розташована:

include (ABSPATH. '/wp-admin/includes/theme.php');
$templates = get_page_templates();
0

#1 Виведемо на екран назву шаблонів постійних сторінок

Припустимо, що у нас у темі є 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)<br />";
}

/* Поверне:
Архівна сторінка (page_archive-template.php)
Одна колонка без меню навігації (page_one-column-template.php)
*/
0

#2 Використання Методу get_page_templates() класу WP_Theme

Зручніше та правильніше використовувати не функцію get_page_templates(), а метод класу get_page_templates(). У цьому випадку немає необхідності підключати потрібний файл:

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

/* Поверне:
Array
(
	[my-custom-page.php] => Мій шаблон постійної сторінки
	[my-page-templates/my-second-page.php] => Ще один шаблон для постійної сторінки
)
*/

Як бачите тут ключ – назва файлу, а значення – назва шаблону.

список змін

З версії 1.5.0Введено.
З версії 4.7.0Added $post_type parameter.

Код get_page_templates() WP 6.0.2

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *