So zeigen Sie nur Beiträge für die letzte untergeordnete Kategorie an

Standardmäßig zeigt WordPress Beiträge zu jeder Kategorie in seiner Hierarchie an.

Beispiel:

Elternteil

/ – Kind

/ – Enkelkind

Wenn Sie die Kategorie “Eltern” anzeigen, sehen Sie eine Liste der Beiträge von Kind, Enkel und Eltern – auch wenn der Beitrag in “Enkelkind” angekreuzt ist.

Meine Frage ist: Wie zeige ich nur Posts, wenn ich das letzte Kind ansehe? Gibt es dafür eine eingebaute WordPress-function?

z.B:

[grandchild categories] = array of grandchildren if(in_array( [grandchild categories] )) : show posts else: do nothing 

Solutions Collecting From Web of "So zeigen Sie nur Beiträge für die letzte untergeordnete Kategorie an"

Es gibt natürlich den Parameter include_children für WP_Query als Teil der Taxonomieparameter . Was ich denke sollte für dich so funktionieren:

 $args = array( 'tax_query' => array( array( 'include_children' => false ), ), ); $query = new WP_Query( $args ); 

Oder über parse_tax_query für Ihr Kategoriearchiv:

 add_filter( 'parse_tax_query', 'wpse163572_do_not_include_children_in_category_archive_parse_tax_query' ); function wpse163572_do_not_include_children_in_category_archive_parse_tax_query( $query ) { if ( ! is_admin() && $query->is_main_query() && $query->is_category() ) { // as seen here: http://wordpress.stackexchange.com/a/140952/22534 $query->tax_query->queries[0]['include_children'] = 0; } } 

Hinweis: Dank @PieterGoosen wird dies nun getestet und bestätigt.

Diejenigen von uns, die statische Webseiten mit Seiten entwickelt haben, werden das Problem verstehen, wie Pieter in den obigen Kommentaren ausgeführt hat.

Im Wesentlichen, wenn man eine Seite erstellen und Inhalte auf dieser Seite auflisten könnte, hat man den gewünschten Effekt, aber es ist nützlich, das Kategoriesystem in wp zu verwenden, um Inhalte zu verwalten und zu ordnen.

Hier ist was ich getan habe und arbeite:

Ich habe eine kleine function um ” get_term_children ” geschrieben – eine WordPress-function.

 function category_has_children( $term_id ){ $children = get_term_children( $term_id, "category" ); if(is_array($children)){ return $children; } else { return false; } } 

Dann schaue ich auf meiner Kategorieseite vor der Schleife nach, ob die “category_has_children”:

 < ?php if( category_has_children( $cat ) == false) : ?> show posts as this is the last child category. < ? endif; ?>