最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How do I set a specific template for sub-categories?

programmeradmin3浏览0评论

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

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

Share Improve this question asked Feb 27, 2015 at 11:39 MikedefieslifeMikedefieslife 1611 silver badge7 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 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)

  1. 暂无评论