Ролик: https://www.youtube.com/watch?v=RNFRCz0whuw&t=28s
В директории темы создадим любой файл и в начале пропишем комментарий:
<?php
/*
* Template Name: Страница продукции
*/
?>
WP автоматически подхватит данный шаблон.
Если нужно разрешить данный шаблон для записей или кастомных типов Нужно добавить:
<?php
/*
* Template Name: Страница продукции
* Template Post Type: page, post, product
*/
?>
Необходимо создать файл page-{слаг страницы}.php или page{ID страницы}.php
Пример: page-contact.php или page-12.php или page-about.php
Недостатки:
Это продвинутый способ, он более сложный, но вместе со сложностью он открывает широкие возможности. С помощью этого способа можно задать шаблон любой странице, записи, категории, любой публикации на сайте или вообще группе любых публикаций. Смотрите примеры с описанием:
// фильтр передает переменную $template - путь до файла шаблона.
// Изменяя этот путь мы изменяем файл шаблона.
add_filter('template_include', 'my_template');
function my_template( $template ) {
# аналог второго способа
// если это страница со слагом portfolio, используем файл шаблона page-portfolio.php
// используем условный тег is_page()
if( is_page('portfolio') ){
if ( $new_template = locate_template( array( 'page-portfolio.php' ) ) )
return $new_template ;
}
# шаблон для группы рубрик
// этот пример будет использовать файл из папки темы tpl_special-cats.php,
// как шаблон для рубрик с ID 9, названием "Без рубрики" и слагом "php"
if( is_category( array( 9, 'Без рубрики', 'php') ) ){
return get_stylesheet_directory() . '/tpl_special-cats.php';
}
# шаблон для записи по ID
// файл шаблона расположен в папке плагина /my-plugin/site-template.php
global $post;
if( $post->ID == 12 ){
return wp_normalize_path( WP_PLUGIN_DIR ) . '/my-plugin/site-template.php';
}
# шаблон для страниц произвольного типа "book"
// предполагается, что файл шаблона book-tpl.php лежит в папке темы
global $post;
if( $post->post_type == 'book' ){
return get_stylesheet_directory() . '/book-tpl.php';
}
return $template;
}