Holen Sie sich nur übergeordnete Kategorien WordPress

Lesezeit: 3 Minuten

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);

  • Das Seltsame ist, dass ich 3 Elternkategorien ohne Kinder und eine Elternkategorie mit 3 Kindern habe. Wenn ich jedoch oben hinzufüge, wird nur die übergeordnete Kategorie mit Kindern angezeigt

    – Peter Pick

    9. Januar 2015 um 12:08 Uhr

  • Das ist komisch! Ich weiß nicht genau, woran es dann liegen könnte. Vielleicht sollten Sie meine Antwort nicht akzeptieren, damit sich jemand anderes einmischen kann.

    – vicvicvic

    9. Januar 2015 um 13:21 Uhr

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,] );

  • Wenn Sie eine Antwort auf eine fünf Jahre alte Frage mit drei vorhandenen Antworten hinzufügen, ist es sehr wichtig, darauf hinzuweisen, welchen neuen Aspekt der Frage Ihre Antwort anspricht. Nur-Code-Antworten können fast immer verbessert werden, indem eine Erklärung hinzugefügt wird, wie und warum sie funktionieren.

    – Jason Aller

    8. Juni 2020 um 16:49 Uhr

  • Während dieser Code die Frage beantworten kann, verbessert die Bereitstellung von zusätzlichem Kontext dazu, warum und/oder wie dieser Code die Frage beantwortet, seinen langfristigen Wert. Ich würde Ihnen empfehlen, den offiziellen Artikel von SO zu beantworten, zusammen mit dem umfassenden Blogeintrag von Jon Skeet.

    – Alexej Potapow

    9. Juni 2020 um 11:39 Uhr

Holen Sie sich nur ubergeordnete Kategorien WordPress
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.

Holen Sie sich nur ubergeordnete Kategorien WordPress
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;
}

914510cookie-checkHolen Sie sich nur übergeordnete Kategorien WordPress

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy