Ich versuche, eine Kategorieliste zu erstellen, aber ich möchte nur die übergeordneten Kategorien und nicht die untergeordneten Kategorien auflisten. Wie kann ich das machen? Bisher habe ich eine Liste erstellt, die alle übergeordneten und untergeordneten Kategorien auflistet.
function categoryList() {
$args = array(
'orderby' => 'name',
'order' => 'ASC'
);
$categories = get_categories($args);
$output .= '<ul class="category-list">';
foreach($categories as $category) {
if ($category){
$output .= '<li><a href="'%20.%20get_category_link(%20$category->term_id%20)%20.%20'" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a>';
}
}
$output .= '</li>';
$output .= '</ul>';
return $output;
}
Ich nehme an, dass Sie mit übergeordneten Kategorien Kategorien der obersten Ebene meinen. Dies ist tatsächlich auf der dokumentiert Codex-Seite für get_categories
: Du solltest anrufen get_categories
mit parent => 0
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'parent' => 0
);
$categories = get_categories($args);
Nur Kategorien der obersten (übergeordneten) Ebene in WordPress auflisten. Die Option ‘hide_empty’ => 0 stellt sicher, dass auch leere Top-Level-Kategorien aufgelistet werden.
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'parent' => 0,
'hide_empty' => 0,
//'exclude' => '7',
// optional you can exclude parent categories from listing
);
$categories = get_categories( $args );
benutze das:
$categories = get_categories( [ 'parent'=> id_parent ,'hide_empty' => 0,] );

Felipe Sanches
Eine native WordPress-Lösung, um die AKTUELLE übergeordnete Kategorie zurückzugeben, wobei unerwünschte Kategorien ausgeschlossen werden:
function primary_categories($arr_excluded_cats) {
if($arr_excluded_cats == null) {
$arr_excluded_cats = array();
}
$post_cats = get_the_category();
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'parent' => 0
);
$primary_categories = get_categories($args);
foreach ($primary_categories as $primary_category) {
foreach ($post_cats as $post_cat) {
if(($primary_category->slug == $post_cat->slug) && (!in_array($primary_category->slug, $arr_excluded_cats))) {
return $primary_category->slug;
}
}
}
}
//if you have more than two parent categories associated with the post, you can delete the ones you don't want here
$dont_return_these = array(
'receitas','enciclopedico'
);
//use the function like this:
echo primary_categories($dont_return_these);
Bemerkungen:
- Wenn Sie per Post nur eine übergeordnete Kategorie haben, übergeben Sie null anstelle von array
- Wenn Sie anstelle von Slug eine andere Ausgabe wünschen, ändern Sie dies so, dass $primary_category-> Slug zurückgegeben wird.

Nuno Sarmento
Der folgende Code gibt uns den Namen der Elternkatze und die URL.
function ns_primary_cat() {
$cat_now = get_the_category();
$cat_now = $cat_now[0];
if ( 0 == $cat_now->category_parent ) {
$catname="<span class="category"><a href="" . get_category_link( $cat_now->term_id ) . '">' . $cat_now->name . '</a></span>';
} else {
$parent_id = $cat_now->category_parent;
$parent_cat = get_category( $parent_id );
$catname="<span class="category"><a href="" . get_category_link( $parent_id ) . '">' . $parent_cat->name . '</a></span>';
}
return $catname;
}
9145100cookie-checkHolen Sie sich nur übergeordnete Kategorien WordPressyes