Зарегистрировать родительские страницы для всех таксономий
Как пример можно взять шаблон archive.php - он один срабатывает для всех терминов на сайте, такой шаблон и для таксономии хочу.
есть порядка 10 таксономий на сайте фильмов с URL:
site / movie / название фильма
site / janre / комедия
site / year / 2000
Вопрос: Как для таксономий movie, janre, year создать единый шаблон и поместить туда облако терминов конкретной таксономии ? (конкретно с облаком проблем нет)
А вот как автоматом создать шаблон родительской страницы для всей таксономий не знаю, чтоб
по URLs
site / movie /
site / janre /
site / year /
появлялась страница с терминами таксономии.
Почему хуки template_include или (type)_template_hierarchy не подходят? На хуке определяешь текущую таксу и подсовываешь один какой-то файл в котором выводишь что нужно.
так как иногда я не доганяю - сделал через GET запрос
Create a page without adding a page in the Database
# правим is_foobar_page - параметр под свое название
add_action('init', 'foo_add_rewrite_rule');
function foo_add_rewrite_rule(){
add_rewrite_rule('^foobar?','index.php?is_foobar_page=1&post_type=custom_post_type','top');
//Customize this query string - keep is_foobar_page=1 intact
}
add_action('query_vars','foo_set_query_var');
function foo_set_query_var($vars) {
array_push($vars, 'is_foobar_page');
return $vars;
}
add_filter('template_include', 'foo_include_template', 1000, 1);
function foo_include_template($template){
if(get_query_var('is_foobar_page')){
$new_template = WP_CONTENT_DIR.'/themes/your-theme/template-name.php';
if(file_exists($new_template))
$template = $new_template;
}
return $template;
}
варианты через директорию
taxonomy-{taxonomy}.php
или через произвольный шаблон
Template name: Page Category
меня не интересуют, так как просто захломят сайт, да один шаблон нужен для всех таксономии, для оптимизации и быстрой обработки