Beiträge der Unterkategorie nicht in übergeordneter Kategorie anzeigen

Aus meiner Sicht ärgerlich ist, dass bei WordPress, Unterkategorien auch in der übergeordneten Kategorie angezeigt werden. Durch diese Maßnahme ist es nicht möglich gezielt auf Kategorien verschiedener Level zuzugreifen. Bei meiner Suche nach einer passenden Lösung bin ich bei Frank Bültge fündig geworden. Den folgenden Codeschnipsel in die function.php integrieren und schon funzt die Sache.


function fb_filter_child_cats($query) {
$cat = get_term_by( 'name', $query->query_vars['category_name'], 'category' );
if ( ! isset( $cat->term_id ) )
return $query;
$child_cats = (array) get_term_children( $cat->term_id, 'category' );
if ( ! $query->is_admin )
$query->set( 'category__not_in', array_merge( $child_cats ) );
return $query;
}
add_filter( 'pre_get_posts', 'fb_filter_child_cats' );

Durch diese Maßnahme werden in der jeweiligen Kategorie, unabhängig vom Level, nur noch die Beiträge der jeweiligen Kategorie angezeigt.

4 Gedanken zu „Beiträge der Unterkategorie nicht in übergeordneter Kategorie anzeigen“

  1. Hallo Klaus,

    ich bin in Sachen WordPress erst seit kurzem dabei. Ein wirklich toller Tipp.

    Diesen habe ich mit dem Plugin „Code Snippets“ einbinden können und es klappte auf Anhieb.
    Finde es allerdings auch sehr Schade, dass WP diese Option nicht anbietet.

    Ich dachte, man könnte das Unter Beiträge > Auswahl einschränken vornehmen.
    vielen dank!

    Gruss Jochen

  2. Hallo,

    ich habe die Funktion heute auch erstmalig genutzt. Funktioniert grundsätzlich so wie beschrieben. Ich habe leider nur das Problem, dass in den Hauptkategorien weiterhin alle Beiträge aus allen darunter liegenden Kategorien/Unterkategorien angezeigt werden.

    Gibt es hierfür vielleicht auch eine Lösung?

    Viele Grüße
    Sebastian

  3. Danke ! Diesen Tipp habe ich nun 5 Tage gesucht und er passt perfekt ! ! ! ! ! ! ! ! ! ! ! ! !! ! ! !
    andere snippets haben nicht so toll funktioniert und mir immer das Navigationsmenü gelöscht !
    DAAAAANNNKKKEEEEEE

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*