Задаем свой шаблон category для родительской и дочерних рубрик в WordPress
Делал я один сайт, в котором было несколько рубрик (около 20), и у каждой рубрики было еще несколько дочерних рубрик. Все бы ни чего, но у одной из главных рубрик было порядка 100 дочерних элементов, а задача стояла в том, чтобы как раз эту главную рубрику с ее дочерними разделами выделить своим уникальным дизайном.
Что приходит на ум? Использовать стандартный шаблон category.php и в нем перечислить все нужные нам рубрики, у которых мы хотим сменить оформление.
В целом решение неплохое, когда рубрик 5–10, но не когда их 100 и более.
Чтобы более красиво решить эту задачу, рекомендую вам воспользоваться следующим хаком.
Откройте файл functions.php в папке вашей темы и в самый низ вставьте:
function custom_template($template) {
$main_cat_id = 30;
if(cat_is_ancestor_of($main_cat_id, get_query_var('cat')) || is_category($main_cat_id)) {
$new_template = locate_template(array('category-new.php'));
return $new_template;
}
return $template;
}
add_filter('template_include', 'custom_template');
Сохраните и отправьте файл обратно на сайт.
Здесь «30» – это ID главной рубрики, а «category-new.php» – название файла шаблона (должен лежать в корне вашей темы). Таким образом, к рубрике с ID, равным 30, и ко всем ее дочерним элементам будет привязан указанный файл шаблона.
Если вы хотите изменить шаблон только для дочерних рубрик, исключая главную, то из кода выше удалите:
or is_category($main_cat_id)
Удачных вам разработок!