page_template_dropdown()WP 1.5.0

Получает файлы шаблона для указанного типа записи и выводит их на экран в виде элементов <option> для select поля формы.

Функция рассчитана для работы в админ-панели. Если она нужна во фронте, нужно подключить файлы:

require_once ABSPATH . '/wp-admin/includes/theme.php';
require_once ABSPATH . '/wp-admin/includes/template.php';
Работает на основе: get_page_templates()

Хуков нет.

Возвращает

null. Ничего. Выводит на экран HTML код для использования в <select>.

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

page_template_dropdown( $default, $post_type );
$default(строка)
Название файла шаблона который должен быть выбран в select.
По умолчанию: ''
$post_type(строка)
Тип записи для которого нужно получить шаблоны. С версии 4.7. шаблоны можно указывать для любых типов записей.
По умолчанию: 'page'

Примеры

0

#1 Демонстрация работы

<?php
// для фронта
require_once ABSPATH . '/wp-admin/includes/theme.php';
require_once ABSPATH . '/wp-admin/includes/template.php';
?>
<select name="" id="">
	<?php page_template_dropdown(); ?>
</select>
<?php

В результате получим такой HTML:

<select name="" id="">    
	<option value='page_tpl_custom.php' >Мой шаблон страницы</option>
	<option value='page_tpl_custom2.php' >Еще один шаблон страницы</option>
</select>

Список изменений

С версии 1.5.0 Введена.
С версии 4.7.0 Added the $post_type parameter.

Код page_template_dropdown() WP 6.7.1

function page_template_dropdown( $default_template = '', $post_type = 'page' ) {
	$templates = get_page_templates( null, $post_type );

	ksort( $templates );

	foreach ( array_keys( $templates ) as $template ) {
		$selected = selected( $default_template, $templates[ $template ], false );
		echo "\n\t<option value='" . esc_attr( $templates[ $template ] ) . "' $selected>" . esc_html( $template ) . '</option>';
	}
}