Möchten Sie nur die untergeordnete Kategorie in Ihrer WordPress-Postschleife anzeigen?
Die meisten WordPress-Themes zeigen automatisch alle Kategorien für einen Beitrag, einschließlich übergeordneter und untergeordneter Kategorien. Was wäre, wenn Sie nur die untergeordnete Kategorie anzeigen möchten?
In diesem Artikel zeigen wir Ihnen, wie Sie ganz einfach nur die untergeordnete Kategorie in Ihrer WordPress-Postschleife anzeigen können.
Warum und wann Sie nur die untergeordnete Kategorie anzeigen möchten
WordPress wird mit zwei Standard-Taxonomien geliefert, die als Kategorien und Tags bezeichnet werden, um Ihre Inhalte zu organisieren. Viele Websites verwenden Tags für bestimmte Themen jedes Artikels und Kategorien für breitere Website-Abschnitte.
Dann gibt es Websites, die Kategorien verwenden, um die Struktur ihrer Website zu definieren. Zum Beispiel kann eine Reise-Website Kategorien für verschiedene Arten von Reisezielen verwenden, oder ein Food-Blog kann sie für verschiedene Arten von Küchen verwenden.
Kategorien sind ebenfalls hierarchisch, was bedeutet, dass Sie untergeordnete Kategorien (oder Unterkategorien) für eine übergeordnete Kategorie erstellen können, um Ihren Inhalt weiter zu organisieren. Beispielsweise kann eine Reise-Website einen Artikel unter Reiseziele » Europa einreichen, wobei Europa die untergeordnete Kategorie ist.
Standardmäßig zeigt ein WordPress-Theme alle übergeordneten und untergeordneten Kategorien für einen Beitrag an.
Das Auflisten aller Kategorien für einen Beitrag sieht jedoch möglicherweise nicht so übersichtlich und fokussiert aus wie die Anzeige der relevantesten Kategorie. In diesem Fall möchten Sie möglicherweise die übergeordnete Kategorie überspringen und stattdessen nur die untergeordnete Kategorie anzeigen.
Lassen Sie uns jedoch einen Blick darauf werfen, wie Sie nur die untergeordnete Kategorie für einen WordPress-Beitrag anzeigen.
Nur die untergeordnete Kategorie für einen WordPress-Beitrag anzeigen
Dieses Tutorial erfordert einige Grundkenntnisse im Kopieren und Einfügen von benutzerdefinierten Code-Snippets in WordPress.
Zuerst müssen Sie den Code in Ihren Designdateien finden, der für die Anzeige von Kategorien verantwortlich ist. Diese befindet sich normalerweise in der Datei single.php in Ihrem Theme.
Um mehr zu erfahren, sehen Sie sich unseren Spickzettel zur WordPress-Vorlagenhierarchie an, der Ihnen hilft herauszufinden, welche Vorlagendateien verwendet werden, um verschiedene Abschnitte in einem WordPress-Theme anzuzeigen.
Wenn Sie den für die Anzeige von Kategorien zuständigen Code gefunden haben, können Sie ihn durch den folgenden Code ersetzen.
// Get the IDs of child categories if any $categories = get_the_category(); foreach( $categories as $category ) { If ( $category->parent > 0 ) { $child_cat_ID[] = $category->term_id; } } // If there are no child categories then display categories If ( empty($child_cat_ID)) { echo get_the_category_list( ' , ', '' ); // display child categories only } else { $child_cat_IDs = implode(', ', $child_cat_ID); echo '<div class="post-categories">Filed under: '; wp_list_categories( array( 'separator' => ' ', 'style' => '', 'include' => $child_cat_IDs ) ); echo '</div>'; }
Vergessen Sie nicht, Ihre Änderungen zu speichern und die Theme-Dateien wieder auf Ihren Server hochzuladen.
Sie können jetzt Ihren einzelnen Beitrag besuchen, der eine oder mehrere untergeordnete Kategorien enthält. Sie werden feststellen, dass die übergeordnete Kategorie ausgeblendet und nur untergeordnete Kategorien angezeigt werden.
Es gibt ein Problem mit diesem Code.
Wenn Sie eine übergeordnete Kategorie mit untergeordneten Kategorien und eine weitere einzelne Kategorie ausgewählt haben, überspringt der Code die eigenständige Kategorie. Das bedeutet, dass im Beispiel unten die Kategorie „News“ nicht angezeigt wird.
Wenn dies für Ihre Designanforderungen ein Problem darstellt, können Sie stattdessen den folgenden Code verwenden.
// Get the IDs of categories $categories = get_the_category(); foreach( $categories as $category ) { If ( $category->parent > 0 ) { $child_cat_ID[] = $category->term_id; //store child's parent category id to use later $parent_cat_ID = $category->parent; } // find categories with no parent and no child If ( $category->parent == 0 && $category->term_id !== $parent_cat_ID) { $single_category[] = $category->term_id; } } // Display part of the code // if there are no child categories then go ahead and display all categories. If ( empty($child_cat_ID)) { echo get_the_category_list( ' , ', '' ); } // If there are child categories then do this else { $child_cat_IDs = implode(', ', $child_cat_ID) ; $single_category_id = implode(', ', $single_category); // Combine child categories and categories with no children $cats_to_include = $child_cat_IDs . ', ' . $single_category_id ; // Display them echo '<div class="post-categories">Filed under: '; wp_list_categories( array( 'separator' => ' ', 'style' => '', 'include' => $cats_to_include ) ); echo '</div>'; }
Dieser Code schließt jetzt nur übergeordnete Kategorien aus. Es werden weiterhin alle eigenständigen Kategorien zusammen mit untergeordneten Kategorien angezeigt.
Wir hoffen, dieser Artikel hat Ihnen geholfen zu lernen, wie Sie in Ihren WordPress-Beiträgen nur untergeordnete Kategorien anzeigen. Vielleicht möchten Sie auch diese nützlichen Tricks für die WordPress-Funktionsdatei ausprobieren oder diese leistungsstarken WordPress-Seitenersteller verwenden, um das Schreiben von Code zu vermeiden.