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 адреса не оприлюднюватиметься. Обов’язкові поля позначені *