Make Wordpress subcategories use Category Template Make Wordpress subcategories use Category Template wordpress wordpress

Make Wordpress subcategories use Category Template


One way to do this is to hook into the template_redirect action in your functions.php file:

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');


Richard's answer does work but it will heavily interfere with other plugins.

I found a better alternative using add_filter & template_include as the example below

add_filter( 'template_include', 'my_callback' );function my_callback( $original_template ) {    if ( some_condition() ) {        return SOME_PATH . '/some-custom-file.php';    } else {        return $original_template;    }}

Credit to https://markjaquith.wordpress.com/2014/02/19/template_redirect-is-not-for-loading-templates/


As far i know; according to wp template hierarchy, category-samplecat.php is only applies to a category with slug name "samplecat". So it's not possible to do it in this way.

But in the category.php file (that applies to every category which hasn't a special template file) you can make a conditional check if current category is a child of "project" (using this method in my answer to your other question) and if so you can apply same structure of category-projects.php to it or include category-projects.php.