作为主体类的类别层次结构级别-父猫=1,子猫=2,孙猫=3

时间:2017-04-27 作者:Pete

我发现这几乎不可能找到任何信息。我正在寻找一种方法,为每个类别级别分配一个数字,然后将该数字添加到body类中。e、 g.父类别存档将显示类.catlevel-1, 而子类别存档将显示类.catlevel-2 ... 等等

2 个回复
最合适的回答,由SO网友:Vinod Dalvi 整理而成

您可以通过使用以下自定义代码来实现这一点。您可以通过将代码添加到函数中来使用该代码。子主题的php文件或自定义插件文件。

add_filter( \'body_class\', \'custom_cat_archiev_class\' );
function custom_cat_archiev_class( $classes ) {
    if ( is_category() ) {
        $cat = get_queried_object();
        $ancestors = get_ancestors( $cat->term_id, \'category\', \'taxonomy\' );
        $classes[] = \'catlevel-\' . ( count( $ancestors ) + 1 );
    }
    return $classes;
}

SO网友:Bruno Cantuaria

有趣的没那么难,你需要用过滤器body_class:

add_filter(\'body_class\', \'category_level_as_class\');
function category_level_as_class($classes) {

        //First check if we\'re at a category archive page
        if (is_category()) {
                //Set our counter
                $i = 1;

                //Get current category parent
                $category = get_the_category();
                $parent = $category[0]->parent;

                //Loop through categories parent
                while ($parent > 0) {
                        $i++;
                        //Now get parent category info
                        $category = get_category($parent);
                        $parent = $category->parent;
                }

                //Add the class
                $classes[] = \'catlevel-\' . $i;
        }

        return $classes;
}