Vertrauenswürdige WordPress-Tutorials, wenn Sie sie am dringendsten benötigen.
Anfängerleitfaden für WordPress
WPB Cup
25 Millionen+
Websites, die unsere Plugins verwenden
16+
Jahre WordPress-Erfahrung
3000+
WordPress-Tutorials von Experten

Nur Unterkategorien in Ihrer WordPress-Beitrags-Schleife anzeigen

Unserer Erfahrung nach kann es, wenn Sie Ihren WordPress-Beiträgen viele Kategorien hinzufügen, etwas überladen wirken. Mehrere Kategorien, insbesondere Eltern- und Unterkategorien, können Ihre Layouts unübersichtlich machen und es den Lesern erschweren, das zu finden, wonach sie suchen.

Wäre es nicht übersichtlicher, nur die Unterkategorie für jeden Beitrag anzuzeigen ?

Diese Anleitung zeigt Ihnen, wie Sie die Datei Ihres WordPress-Themes anpassen, um nur Unterkategorien in Ihrer Beitrags-Schleife anzuzeigen, was Ihrem Blog ein schlankeres und benutzerfreundlicheres Gefühl verleiht.

Nur Unterkategorien im WordPress-Beitragsschleife anzeigen

Nur die Unterkategorie in Ihrer WordPress-Beitrags-Schleife anzeigen?

Beim Erstellen eines WordPress-Blogs können Sie Ihre Inhalte mithilfe von Kategorien und Schlagwörtern organisieren.

Um den Lesern zu helfen, interessante Inhalte schneller zu finden, können Sie sogar Unterkategorien (oder Subkategorien) erstellen.

Wenn Sie beispielsweise einen Reiseblog haben, könnten Sie eine Kategorie 'Reiseziele' erstellen und dann Unterkategorien wie 'Europa', 'Amerika' und 'Australien' haben.

Standardmäßig zeigen die meisten WordPress-Themes alle Eltern- und Unterkategorien für einen Beitrag an.

Nur die Unterkategorien in der WordPress-Beitragschleife anzeigen

Wenn Sie jedoch viele Kategorien verwenden, können Ihre Blogseiten unordentlich und kompliziert aussehen. Es kann es auch schwieriger machen, für die Leser die Kategorie zu finden, an der sie interessiert sind.

Aus diesem Grund möchten Sie möglicherweise die generischen Oberkategorien eines Beitrags ausblenden und nur die Unterkategorien anzeigen. Lassen Sie uns nun sehen, wie Sie nur Unterkategorien in der WordPress-Beitragschleife 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:

  1. Zuerst müssen Sie Ihre Website mit FTP verbinden oder den Dateimanager Ihres Webhosters öffnen, um auf diese Dateien zugreifen zu können.
  2. Wenn Sie Anfänger sind, dann können Sie sich unseren Anfängerleitfaden zum Einfügen von Snippets aus dem Web in WordPress ansehen, um sich im Voraus vorzubereiten.
  3. Wir empfehlen, ein Backup zu erstellen oder eine Staging-Umgebung zu verwenden, um diese Methode zu befolgen. Auf diese Weise wird Ihre Live-Website nicht beeinträchtigt, falls etwas schiefgeht.

Letztendlich ist dieser Leitfaden nur für klassische WordPress-Themes anwendbar. Block-Themes haben eine andere Struktur für Theme-Dateien.

Nur die Unterkategorie in der WordPress-Beitrags-Schleife anzeigen

In diesem Tutorial zeigen wir Ihnen, wie Sie Ihre Theme-Datei mit dem Bluehost-Dateimanager bearbeiten. Aber unabhängig von Ihrem Hosting-Anbieter sollten die Schritte ähnlich sein.

Melden Sie sich zuerst in Ihrem Bluehost Dashboard an und navigieren Sie zum Tab „Websites“. Klicken Sie dann auf „Einstellungen“ für die Website, die Sie bearbeiten möchten.

Bluehost-Website-Einstellungen

Scrollen Sie als Nächstes zum Abschnitt „Schnelllinks“.

Klicken Sie dann auf die Schaltfläche „Dateimanager“.

Zugriff auf den Dateimanager einer Website in Bluehost

Dies öffnet den Dateimanager.

Nun müssen Sie den Code in Ihrer Theme-Datei finden, der für die Anzeige von Kategorien zuständig ist. Sie können damit beginnen, indem Sie zum Ordner public_html Ihrer Website gehen » wp-content » themes » Ordner Ihres aktuellen Themes.

Zu diesem Zeitpunkt müssen Sie möglicherweise jede Datei und jeden Ordner einzeln öffnen, um die richtige Datei zum Bearbeiten zu finden. Eine Sache, die Sie tun können, ist, nach kategorienbezogenem Code zu suchen, wie z. B. has_category oder get_the_category_list. Wenn Sie diese finden, dann sollten Sie sich in der richtigen Datei befinden.

Wenn Sie die richtige Vorlagendatei nicht finden können, dann sehen Sie sich unser WordPress-Vorlagenhierarchie-Cheat-Sheet und unseren Leitfaden zum Thema So finden Sie die richtige Theme-Datei zum Bearbeiten an.

Wenn Sie das Twenty Twenty-One-Theme verwenden, dann ist die Datei, nach der Sie suchen sollten, die Datei template-tags im Ordner „inc“. Sobald Sie sie gefunden haben, können Sie mit der rechten Maustaste auf die Datei klicken und „Bearbeiten“ auswählen.

Öffnen des inc-Ordners für das Twenty Twenty One-Theme im Bluehost-Dateimanager

In der Datei ist dies der Ausschnitt, der für die Anzeige der Kategorien und Tags 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
					);
				}

				$tags_list = get_the_tag_list( '', wp_get_list_item_separator() );
				if ( $tags_list && ! is_wp_error( $tags_list ) ) {
					printf(
						/* translators: %s: List of tags. */
						'<span class="tags-links">' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '</span>',
						$tags_list // phpcs:ignore WordPress.Security.EscapeOutput
					);
				}
				echo '</div>';
			}
		} else {

Jetzt, da Sie den richtigen Code gefunden haben, können Sie diesen gesamten Ausschnitt durch Folgendes ersetzen:

if ( has_category() || has_tag() ) {

    echo '<div class="post-taxonomies">';

    // Get the list of categories
    $categories = get_the_category();
    $child_cat_IDs = array(); // Array to store child category IDs
    $parent_cat_IDs = array(); // Array to store parent category IDs
 
    foreach ( $categories as $category ) {
        if ( $category->parent > 0 ) {
            $child_cat_IDs[] = $category->term_id; // Store the child category ID
        } else {
            $parent_cat_IDs[] = $category->term_id; // Store the parent category ID
        }
    }

    // Output child categories if there are any
    if ( !empty($child_cat_IDs) ) {
        $output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' ) . ' ';
        foreach ( $child_cat_IDs 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; // Output the child category links

    // Output parent categories if there are no child categories
    } elseif ( !empty($parent_cat_IDs) ) {
        $output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' ) . ' ';
        foreach ( $parent_cat_IDs 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; // Output the parent category links
    }

    // Handle tags
    $tags_list = get_the_tag_list('', wp_get_list_item_separator());
    if ( $tags_list && ! is_wp_error( $tags_list ) ) {
        printf(
            /* translators: %s: List of tags. */
            '<span class="tags-links">' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '</span>',
            $tags_list // phpcs:ignore WordPress.Security.EscapeOutput
        );
    }

    echo '</div>'; // Close post-taxonomies div
}
} else {

Dieser Code-Schnipsel identifiziert zuerst alle Kategorien, die dem Beitrag zugewiesen sind. Dann prüft er, ob jede Kategorie einen Elternteil hat.

Wenn dies der Fall ist, bedeutet dies, dass es sich um eine Unterkategorie handelt und sie zur Anzeigeliste hinzugefügt wird. Übergeordnete Kategorien werden übersprungen, was zu einer übersichtlicheren und spezifischeren Anzeige der Kategorisierung Ihres Beitrags führt.

So sollte es aussehen, wenn Sie den Code ersetzen:

Änderungen am Code, der die Kategorieliste in der Beitrags-Schleife über den Bluehost-Dateimanager anzeigt

Wenn Sie fertig sind, speichern Sie einfach Ihre Änderungen.

Nun müssen Sie einen Beitrag besuchen, der eine oder mehrere Unterkategorien hat. Sie werden sehen, dass die übergeordnete Kategorie ausgeblendet ist und WordPress nun nur die Unterkategorien anzeigt.

Ergebnis der Bearbeitung des Codes zur Anzeige nur der Unterkategorie in der Beitragsschleife

Wir hoffen, dieser Artikel hat Ihnen geholfen zu lernen, wie Sie nur die Unterkategorie in Ihren WordPress-Beiträgen anzeigen. Als Nächstes möchten Sie vielleicht unseren Artikel über das unterschiedliche Styling einzelner Kategorien in WordPress und unseren Leitfaden für Anfänger zum Thema die Suche nach Kategorie in WordPress ansehen.

Wenn Ihnen dieser Artikel gefallen hat, abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Video-Tutorials. Sie finden uns auch auf Twitter und Facebook.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, wenn Sie auf einige unserer Links klicken, können wir eine Provision verdienen. Sehen Sie wie WPBeginner finanziert wird, warum das wichtig ist und wie Sie uns unterstützen können. Hier ist unser Redaktionsprozess.

Das ultimative WordPress-Toolkit

Erhalten Sie KOSTENLOSEN Zugang zu unserem Toolkit – eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Leserinteraktionen

10 CommentsLeave a Reply

  1. Geschafft!

    foreach((get_the_category()) as $childcat) { $parentcat = $childcat->category_parent; if (cat_is_ancestor_of(10, $childcat)) { echo get_cat_name($parentcat); } }

  2. Ich habe drei Hauptkategorien und dieser Code funktioniert erfolgreich in meiner Single-Page-Schleife, um den tatsächlich ausgewählten Kategorienamen auszugeben.
    Ich möchte jetzt den übergeordneten Elternteil der Kategorie ausgeben. Die Komplikation besteht darin, dass ich zwei Ebenen unter der Hauptkategorie habe (3 Ebenen) und ich den Elternteil auf einer Ebene ausgeben möchte, nicht den Elternteil auf der obersten Ebene. Es scheint einfach zu sein, den übergeordneten Elternteil auszugeben, aber ich habe keinen Code gesehen, der die Kindkategorie einer Enkelkategorie zurückgibt?

  3. Das ist ein großartiges Stück Code. Vielen Dank bisher!

    Für eines meiner Projekte muss ich weiter gehen und nur die unterste Unterkategorie anzeigen. Es kann also drei Ebenen geben (Formen -> Quadrate -> Große Quadrate). Mit diesem Code werden alle Unters (Quadrate -> Große Quadrate) angezeigt. Wie kann ich diesem Code sagen, dass er den Vorgang wiederholen soll, bis nur das letzte Kind gefunden und angezeigt wird?

    Wenn Sie Lösungen dafür haben, sind Sie wieder einmal meine Helden! Machen Sie weiter so mit Ihrer großartigen Arbeit und Ihrem Blog!

    • Wenn Sie versuchen, eine Liste aller Unterkategorien anzuzeigen, verwenden Sie die Funktion wp_list_categories(). Sie verfügt über Parameter, mit denen Sie nur Unterkategorien oder nur Oberkategorien auflisten können. Aber das funktioniert nicht für den Fall, über den wir in diesem Artikel sprechen.

      Admin

  4. Tolle Informationsschnipsel von euch.
    Ich muss mich wirklich mal mit PHP beschäftigen.

    Tolle Seite Jungs und ich bemerke, dass ihr Pagerank 6 erreicht habt!
    Wie wäre es mit ein paar Beiträgen, wie man seinen Pagerank steigert.

Antwort hinterlassen

Vielen Dank, dass Sie einen Kommentar hinterlassen. Bitte beachten Sie, dass alle Kommentare gemäß unserer Kommentarrichtlinie moderiert werden und Ihre E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwenden Sie KEINE Schlüsselwörter im Namensfeld. Führen wir ein persönliches und bedeutungsvolles Gespräch.