显示特定自定义分类的特定层次结构级别

时间:2018-11-23 作者:Pete

如何调整以下代码段以应用于特定的自定义分类法?当前适用于职位类别

我使用以下函数:<?php display_cat_level(X,true); ?> 在我的主题文件中显示每个层次类别级别

function get_level($category, $level = 0)
{
    if ($category->category_parent == 0) {
        return $level;
    } else {
        $level++;
        $category = get_category($category->category_parent);
        return get_level($category, $level);
    }
}

function display_cat_level( $level = 0 , $link=false){

    $cats = get_the_category( );
    if( $cats ){
        foreach($cats as $cat){
            $current_cat_level = get_level($cat);
            if( $current_cat_level  == $level ){
                if($link==true) {
                    echo \'<a href="\'.get_category_link($cat->cat_ID).\'">\'.$cat->name."</a>";
                } else {
                    echo $cat->name."";
                }
            }
        }
    }
}
Answer: Jacob的这些更新允许原始和更新的功能一起工作。。。

<?php 
function get_level_subject($category, $level = 0)
{
    if ($category->parent == 0) {
        return $level;
    } else {
        $level++;
        $category = get_term( $category->parent );
        return get_level_subject($category, $level);
    }
}

function display_cat_level_subject( $level = 0 , $link=false){

    $cats = get_the_terms( null, \'subject\' );
    if( $cats ){
        foreach($cats as $cat){
            $current_cat_level = get_level_subject($cat);
            if( $current_cat_level  == $level ){
                if($link==true) {
                    echo \'<a href="\'.get_term_link( $cat->term_id ).\'">\'.$cat->name."</a>";
                } else {
                    echo $cat->name."";
                }
            }
        }
    }
} 
?>

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

更改:

  • get_the_category()get_the_terms( null, \'taxonomy_name\' ).
  • get_category_link( $cat->cat_ID )get_term_link( $cat->term_id ).
  • get_category( $category->category_parent )get_term( $category->parent ).
如果要对多个分类法使用相同的函数,可以接受分类法名称作为参数,并将其传递给上面的第一项:

function display_cat_level( $level = 0 , $link = false, $taxonomy = \'category\' ){
    $cats = get_the_terms( null, $taxonomy );
    // etc.
}
此外,即使在使用类别时,也不要使用cat_IDcategory_parent. 这些在11年前被弃用,取而代之的是term_idparent.

结束

相关推荐

rewrite rules hierarchical

我希望我的WordPress遵循以下规则:/productes/ 包含所有产品的页面/productes/[category]/ 包含该类别所有产品的分类页面/productes/[category]/[subcategory]/ 包含该类别所有产品(与2相同)的分类页面/[productes]/[category]/[product]/ A.single-productes.php 将显示类别产品/[productes]/[category]/[subcategory]/[product]/ A.sin