Позволяет изменить список php файлов иерархии шаблона для текущей страницы (текущего запроса).
Это динамический хук в котором (type)
может быть одним из:
index
— index_template_hierarchy.404
— 404_template_hierarchy.archive
— archive_template_hierarchy.author
— author_template_hierarchy.category
— category_template_hierarchy.tag
— tag_template_hierarchy.taxonomy
— taxonomy_template_hierarchy.date
— date_template_hierarchy.embed
— embed_template_hierarchy.home
— home_template_hierarchy.frontpage
— frontpage_template_hierarchy.privacypolicy
— privacypolicy_template_hierarchy.page
— page_template_hierarchy.paged
— paged_template_hierarchy.search
— search_template_hierarchy.single
— single_template_hierarchy.singular
— singular_template_hierarchy.attachment
— attachment_template_hierarchy.
Последний элемент в массиве всегда должен быть дефолтный файл шаблона. Для постоянных страниц например это page.php, для записей single.php и т.д.
Использование
add_filter( '(type)_template_hierarchy', 'filter_function_name_6928' ); function filter_function_name_6928( $templates ){ // filter... return $templates; }
- $templates(массив)
Список файлов шаблона в порядке их использования. Будет использован первый существующий файл из списка.
Список представляет собой массив в каждом элементе которого путь до файла относительно темы. Например для запроса к записи типа page массив будет такой:
Примеры
#1 Добавим свой файл шаблона в иерархию
Допустим у нас в теме есть папка tpl
в которой лежат файлы шаблона. Нам нужно для страниц с ярлыками my-page
и your-page
указать отдельный файл шаблона some-page.php
из этой папки tpl
. Для этого используем такой код:
add_filter( 'page'.'_template_hierarchy', function( $templates ){ $cur_name = str_replace( [ 'page-', '.php' ], '', $templates[0] ); $page_names = [ 'my-page', 'your-page' ]; if( in_array( $cur_name, $page_names, 1 ) ){ array_unshift( $templates, 'tpl/some-page.php' ); } return $templates; } );
Теперь в самом начале иерархии файлов темы для записей типа page, будет находится файл tpl/some-page.php
и если он есть в теме, он будет использоваться в качестве файла шаблона для текущей страниц.
Список изменений
Где вызывается хук
Где используется хук в ядре WordPress
Использование не найдено.