У меня есть шаблон категории: категория-projects.php
Эта категория имеет подкатегории, но они обращаются к шаблону category.php для инструкций вместо родительской категории. Как я заставляю подкатегории относиться для порождения шаблонов категории в каскадном порядке шаблонных ссылок?
*Примечание, я говорю о URL уровня категории, не сообщениях.
Один из способов сделать это - подключиться к действию template_redirect
в вашем файле functions.php
:
function myTemplateSelect() {
if (is_category() && !is_feed()) {
if (is_category(get_cat_id('projects')) || cat_is_ancestor_of(get_cat_id('projects'), get_query_var('cat'))) {
load_template(TEMPLATEPATH . '/category-projects.php');
exit;
}
}
}
add_action('template_redirect', 'myTemplateSelect');
Насколько я знаю, согласно иерархии шаблонов wp, category-samplecat.php применим только к категории с именем slug "samplecat". Поэтому сделать это таким образом невозможно.
Но в файле category.php (который применяется к каждой категории, не имеющей специального файла шаблона) вы можете сделать условную проверку, является ли текущая категория дочерней по отношению к "проекту" (этот метод использован в моем ответе на ваш другой вопрос) и если да, то вы можете применить к ней ту же структуру category-projects.php или включить category-projects.php.