Ruft die parent_category-class in Schleife ab

Ich versuche, die class parent_category in meiner Schleife zu haben. Ich habe es versucht:

 <a href="#" class="category_nicename;?>">   

und viele andere anstelle von $parent aber das kann nicht funktionieren. Wie kann ich die Kategorie der Elternkategorie anzeigen?

Solutions Collecting From Web of "Ruft die parent_category-class in Schleife ab"

Zuerst müssten Sie überprüfen, ob die Kategorie Kinder hat, wenn dies der Fall ist, können wir ein paar Dinge zeigen. Unten ist eine hilfreiche function, um genau das zu überprüfen.

 function category_has_children( $term_id = 0, $post_type = 'post', $taxonomy = 'category' ) { $children = get_categories( array( 'child_of' => $term_id, 'type' => $post_type, 'taxonomy' => $taxonomy ) ); return ( $children ); } 

Wenn Sie das irgendwo in Ihrer functions.php Datei hinzufügen, können Sie es aufrufen und ein paar Dinge weitergeben. Es gibt entweder true die Kategorie hat Kinder oder false wenn nicht. Im Folgenden gehe ich davon aus, dass die $cat , die Sie in get_category() in Ihrer Frage eine Eltern-Kategorie-ID ist, wenn Sie nicht irgendwie die Eltern-ID erhalten müssen (wenn $cat ein Objekt ist, prüfen Sie, ob $cat->parent ist etwas anderes als 0). Wenn $cat ein Elternteil hat, wissen wir, dass es Kinder hat. Wenn das Elternteil 0 ist, müssen wir prüfen, ob es Kinder gibt.

 < ?php $cat = get_queried_object(); $classes = "current_{$cat->slug}"; if( 0 == $cat->parent ) { $classes .= ( category_has_children( $cat->term_id ) ? ' has_children' : '' ); } else { $parent = get_category( $cat->parent ); $classes = "parent_{$parent->slug} is_child"; $classes .= ( category_has_children( $cat->term_id ) ? ' has_children' : '' ); } ?> < ?php echo single_cat_title( '' ); ?> 

Zuerst wenden wir eine class der aktuellen Kategorie an. Wenn die aktuelle Kategorie kein übergeordnetes Element (eine Top-Level-Kategorie) aufweist, überprüfen wir, ob es untergeordnete Elemente gibt, und wenden Sie eine class an, falls dies der Fall ist. ELSE die aktuelle Kategorie hat ein Elternteil, also erhalten wir zuerst das Elternteil und fügen 2 classn, 1 des Elternteilstückes hinzu und ein anderes lässt uns wissen, dass es ein Kind ist. Schließlich, wenn die has_children auch Kinder hat, fügen Sie die class has_children ELSE tut nichts.


get_queried_object() Codex – Dies wird es tiefer erklären, aber grundsätzlich (aus The Codex gezogen) erhalten Sie einige allgemeine Informationen:

  • Wenn Sie einen einzelnen Beitrag haben, wird das Post-Objekt zurückgegeben
  • Wenn Sie sich auf einer Seite befinden, wird das Seitenobjekt zurückgegeben
  • Wenn Sie sich in einem Kategoriearchiv befinden, wird das Kategorieobjekt zurückgegeben
  • Wenn Sie sich in einem Autorenarchiv befinden, wird das Autorenobjekt zurückgegeben