为类别的所有子集设置主题

时间:2016-09-25 作者:Aria Maghsoody

我知道我可以为任何类别设置主题模板,它设置php文件的名称如下:category-16.php

但我的类别有许多子集16。我希望为类别16的所有子集设置该模板。

怎样

1 个回复
SO网友:cjbj

您需要完成两个功能。首先,您必须知道一个类别是否是16的子类别。这是cat_is_ancestor_of. 其次,您必须强制该类别使用16的模板,您可以使用locate_template. 知道了这一点,您可以在函数上构建一个过滤器,以确定要用于以下类别页面的模板:

add_filter (\'category_template\', \'wpse24089_category_template\');

function wpse24089_category_template( $template ) {
    $current_cat = get_queried_object_id();
    if (cat_is_ancestor_of (16, $current_cat))
        $template = locate_template( \'category-slider.php\' );
    return $template;
    }