2

There's a few posts about getting sub-categories to use the same template as their parent but I want to do something slightly different.

I have a category 67, and I want all sub-categories of 67 to use a specific template. Not the default template, and not the custom category-67.php template.

How do I do that?

I have the following code in functions.php, but it also seems to change the template of category-67

// use specific template depending on category
function myTemplateSelect() {
    if (is_category() && !is_feed()) {
        if (is_category(get_cat_id('67')) || cat_is_ancestor_of(get_cat_id('67'), get_query_var('cat'))) {
            load_template(TEMPLATEPATH . '/category-slider.php');
            exit;
        }
    }
}

 add_action('template_redirect', 'myTemplateSelect');

Eventually I will want to add a few more categories to this also.

Any ideas?

Thanks

1 Answer 1

6

I would recommend using the category_template filter - just check if the current category is an ancestor of 67:

function wpse_179617_category_template( $template ) {
    if ( cat_is_ancestor_of( 67, get_queried_object_id() /* The current category ID */ ) )
        $template = locate_template( 'category-slider.php' );
    return $template;
}

add_filter( 'category_template', 'wpse_179617_category_template' );
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.