Möchten Sie nur die untergeordnete Kategorie in Ihrer WordPress-Beitragsschleife anzeigen?
Die meisten WordPress-Themen zeigen alle Kategorien für einen Beitrag an, einschließlich übergeordneter und untergeordneter Kategorien. Wenn Sie jedoch viele Kategorien zu Ihren Beiträgen hinzufügen, kann dies dazu führen, dass Ihre Website unübersichtlich aussieht und die Leser keine interessanten Inhalte mehr finden.
In diesem Artikel zeigen wir Ihnen, wie Sie ganz einfach nur die untergeordnete Kategorie in Ihrer WordPress-Post-Schleife anzeigen können.
Warum nur Child-Kategorie in Ihrem WordPress Post-Schleife anzeigen?
Bei der Erstellung eines WordPress-Blogs können Sie Ihre Inhalte mithilfe von Kategorien und Tags organisieren.
Um den Lesern zu helfen, interessante Inhalte schneller zu finden, können Sie sogar Unterkategorien (oder Subkategorien) erstellen.
Wenn Sie zum Beispiel einen Reiseblog haben, könnten Sie eine Kategorie „Reiseziele“ erstellen und dann Unterkategorien wie „Europa“, „Amerika“ und „Australien“ einrichten.
Die meisten WordPress-Themes zeigen standardmäßig alle übergeordneten und untergeordneten Kategorien für einen Beitrag an.
Wenn Sie jedoch viele Kategorien verwenden, können Ihre Blog-Seiten unübersichtlich und kompliziert wirken. Außerdem kann es für die Leser schwieriger werden, die Kategorie zu finden, die sie interessiert.
Aus diesem Grund möchten Sie vielleicht die allgemeinen übergeordneten Kategorien eines Beitrags ausblenden und nur die untergeordneten Kategorien anzeigen. Sehen wir uns also an, wie Sie in der WordPress-Beitragsschleife nur die untergeordneten Kategorien anzeigen können.
Vor der Bearbeitung einer WordPress-Theme-Datei: Wichtige Punkte, die Sie beachten sollten
Diese Anleitung richtet sich an Personen, die mit dem Programmieren und Bearbeiten von WordPress-Theme-Dateien vertraut sind. Hier sind einige Dinge, die Sie tun sollten, bevor Sie dem Tutorial folgen:
- Zunächst müssen Sie Ihre Website mit FTP verbinden oder den Dateimanager Ihres Webhosts öffnen, um auf diese Dateien zugreifen zu können.
- Wenn Sie Anfänger sind, können Sie in unserem Leitfaden für Anfänger nachlesen , wie Sie Snippets aus dem Internet in WordPress einfügen, um sich vorzubereiten.
- Wir empfehlen, eine Sicherungskopie zu erstellen oder eine Staging-Site zu verwenden, um diese Methode anzuwenden. Wenn etwas schief geht, ist Ihre Live-Site davon nicht betroffen.
Schließlich gilt dieser Leitfaden nur für klassische WordPress-Themes. Block-Themes haben eine andere Struktur für Theme-Dateien.
Anzeige nur der untergeordneten Kategorie in der WordPress-Post-Schleife
Zunächst müssen Sie den Code in Ihren Themendateien finden, der für die Anzeige der Kategorien verantwortlich ist. Dies kann einige Zeit in Anspruch nehmen, aber Sie können die Suchfunktion Ihres Code-Editors verwenden, um die Suche zu beschleunigen.
Versuchen Sie, kategoriebezogenen Code zu finden, wie has_category
oder get_the_category_list
. Wenn Sie sie finden, dann sollten Sie in der richtigen Datei sein.
Wenn Sie das Twenty Twenty-One-Theme verwenden, dann ist die Datei, nach der Sie suchen sollten, die Datei template-tags
im Ordner „inc“. Hier finden Sie das Snippet, das für die Anzeige der Kategorien verantwortlich ist:
if ( has_category() || has_tag() ) {
echo '<div class="post-taxonomies">';
$categories_list = get_the_category_list( wp_get_list_item_separator() );
if ( $categories_list ) {
printf(
/* translators: %s: List of categories. */
'<span class="cat-links">' . esc_html__( 'Categorized as %s', 'twentytwentyone' ) . ' </span>',
$categories_list // phpcs:ignore WordPress.Security.EscapeOutput
);
}
echo '</div>';
}
Wenn Sie die richtige Vorlagendatei nicht finden können, lesen Sie bitte unseren WordPress-Vorlagenhierarchie-Spickzettel.
Nachdem Sie nun den richtigen Code gefunden haben, können Sie das folgende Snippet einfügen:
// Get the IDs of categories
$categories = get_the_category();
$child_cat_ID = array(); // Array to store child category IDs
foreach( $categories as $category ) {
// Check if the category has a parent (i.e., it's a child category)
if ( $category->parent > 0 ) {
$child_cat_ID[] = $category->term_id; // Store the child category ID
}
}
if ( !empty($child_cat_ID) ) {
$output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' );
foreach($child_cat_ID as $cat_id) {
$cat_link = get_category_link($cat_id);
$cat_name = get_cat_name($cat_id);
$output .= '<a href="' . esc_url($cat_link) . '">' . esc_html($cat_name) . '</a>';
}
$output .= '</span>'; // Close the span tag after the loop
echo $output; // Echo the entire output
Wenn Sie das Twenty Twenty-One-Theme verwenden, sollten Sie den obigen Code hinzufügen, indem Sie die Zeilen dazwischen ersetzen:
if ( has_category() || has_tag() ) {
echo '<div class="post-taxonomies">';
// Replace the code in between these lines
}
echo '</div>';
}
So sollte es aussehen:
Wenn Sie fertig sind, speichern Sie Ihre Änderungen und laden Sie die Datei wieder auf Ihren Webhosting-Server hoch.
Rufen Sie nun einen Beitrag auf, der eine oder mehrere Unterkategorien hat. Sie werden sehen, dass die übergeordnete Kategorie ausgeblendet ist und WordPress jetzt nur noch die untergeordneten Kategorien anzeigt.
Wir hoffen, dass dieser Artikel Ihnen geholfen hat zu lernen, wie Sie nur die untergeordnete Kategorie in Ihren WordPress-Beiträgen anzeigen können. Als Nächstes sollten Sie sich unseren Leitfaden darüber ansehen , wie Sie mit WordPress Geld verdienen können, oder unsere Expertenauswahl der besten SEO-Plugins und -Tools, die Sie verwenden sollten.
Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Mike says
Managed it!
foreach((get_the_category()) as $childcat) {
$parentcat = $childcat->category_parent;
if (cat_is_ancestor_of(10, $childcat)) {
echo get_cat_name($parentcat);
}
}
MIke says
I have three main categories and this code is successfully working in my single page loop to echo the actual selected category name.
I now want to echo the parent of the category. The complication is that I have two layers below the main category (3 levels) and I want to echo the one level parent not the top level parent. It seems easy to echo the top parent, but I haven’t seem any code to return the child level category of a grandchild category?
amnachohan says
Will it work outside the loop ?
Marian Rick says
This is a great piece of code. Thanks a lot so far!
For one of my projects I have to go further, and display only the lowest subcategory. So there may be three levels, (Forms -> Squares -> Big Squares). With this code all subs (Squares -> Big Squares) are displayed. How can I tell this code to repeat the process till only the last child is found and displayed?
If you’ve got any solutions for that you are my heroes once again! Keep up your great work and blog!
GoranJakovljevic says
is it possible to do this for 2 categories instead of single one?
gashface says
How Would I include &orderby=ID ?
Andus Beckus says
This is great thanks!
But how do you display children of all categories and not just cat 10?
Be great if someone could help with this.
Editorial Staff says
If you are trying to display a list of all child categories, then use wp_list_categories() function. It has parameters that allow you to list only child categories or only parent categories. But that doesn’t work for the case that we are talking about in this article.
Admin
Mattia says
great, but if I want to show not „category 10“ but „current category“?
Keith Davis says
Great snippets of info from you guys.
I really have to start to get into this PHP.
Great site boys and I notice that you are up to Pagerank 6!
How about a couple of posts on upping your pagerank.