programing

워드프레스:TOP 레벨 카테고리만 표시

muds 2023. 2. 25. 22:25
반응형

워드프레스:TOP 레벨 카테고리만 표시

이 코드를 사용하고 있습니다.

$args = array(
  'orderby' => 'name',
  'hierarchical' => 1,
  'style' => 'none',
  'taxonomy' => 'category',
  'hide_empty' => 0,
  'depth' => 1,
  'title_li' => ''
);

$categories = get_categories($args);

제가 하려는 것은 최상위 카테고리만 나열하는 것입니다.이 코드를 사용하면 레벨 1뿐만 아니라 모든 것을 얻을 수 있습니다.누가 나 좀 도와줄래?

거기에는 없다depth에 대한 의론get_categories(), 다음을 시도해 보십시오.

$args = array(
  'orderby' => 'name',
  'parent' => 0
);

parent : (정수) ID로 식별되는 카테고리의 직계 하위(자녀 전용) 카테고리만 표시합니다.이것은 'child_of' 파라미터와 같이 동작하지 않습니다.이 파라미터에는 디폴트가 없습니다.[In 2.8.4]

자세한 내용은 이쪽 : http://codex.wordpress.org/Function_Reference/get_categories#Get_only_top_level_categories

소주 투고는 매우 도움이 됩니다.왜냐하면 1레벨의 서브카테고리를 취득하기 위해서는 서브카테고리가 있는 카테고리 ID를 전달해야 합니다.그러나 서브카테고리에 투고가 없는 경우 서브카테고리는 표시되지 않지만 서브카테고리가 투고를 구성하므로 위의 조건에서는 '숨김_empty' => 0을 추가합니다.

$args = array(
'taxonomy' => 'categories',
'parent' => 7,
'hide_empty' => 0,
);

여기 루프 내에서 최상위 카테고리 이름을 가져오는 스크립트가 있습니다.여기에는 하위 범주만 선택되고 자체 확인은 명시적으로 수행되지 않는 최상위 범주가 포함됩니다.

<?php
    $categories = get_the_category();
    $topcats = array();
    foreach ($categories as $cat) {
        if ($cat->parent != 0) $cat = get_term($cat->parent, 'category');
        $topcats[$cat->term_id] = '<a href="/category/' . $cat->slug . '">' . $cat->name . '</a>';
    }
    echo implode(', ', $topcats);
?>

이 기능을 사용하면 어떤 카테고리 레벨을 선택할 수 있습니다.그래서 당신의 경우 레벨 0을 선택하면<?php display_cat_level(0,true); ?>네 싱글곡에.php 테마 파일

https://github.com/pjeaje/code-snippets/blob/gh-pages/display%20a%20specific%20category%20level%20of%20a%20post%20inside%20the%20loop

// http://wpquestions.com/question/showChronoLoggedIn/id/9333
// display a specific category level of a post inside the loop
// USAGE: <?php display_cat_level(X,true); ?> where TRUE = linked | false/empty = not linked
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><br />";
                } else {
                    echo $cat->name."<br />";
                }
            }
        }
    }
}

언급URL : https://stackoverflow.com/questions/15113247/wordpress-show-only-top-level-categories

반응형