Abrufen von Beiträgen aus untergeordneten Kategorien mit der übergeordneten Kategorie-ID

Ich habe ein Plugin, das Beiträge aus einer ausgewählten Kategorie anzeigt. Wenn Kinderkategorien ausgewählt werden, funktioniert es perfekt. Wenn ich jedoch eine übergeordnete Kategorie auswähle, werden keine Beiträge aus den untergeordneten Kategorien angezeigt.

Ich hoffe, das ist der Ausschnitt, der geändert werden muss, aber ich bin mir nicht sicher.

Wäre schön, wenn mir jemand helfen könnte.

    'post', 'category__in' => $text, 'orderby' => 'meta_value_num', 'meta_key' => 'rankk', 'order' => 'DESC', 'posts_per_page' => 100 )); ?>

Solutions Collecting From Web of "Abrufen von Beiträgen aus untergeordneten Kategorien mit der übergeordneten Kategorie-ID"

Wie ich in meinen Kommentaren zu Ihrer Frage gesagt habe

Crappy geschriebene Plugins führen immer irgendwann zu einem Desaster. Meiner Meinung nach löschen Sie dieses Plugin und schreiben Sie Ihren eigenen Code oder finden Sie ein richtig geschriebenes Plugin. Es macht keinen Sinn, den beschädigten Reifen zu wechseln, während das ganze Auto komplett abgeschrieben ist 🙂

Nur zu Beginn verwenden Sie nie query_posts

Hinweis: Diese function ist nicht für Plugins oder Themes vorgesehen. Wie später erläutert, gibt es bessere, performantere Optionen zum Ändern der Hauptabfrage. query_posts () ist eine zu einfache und problematische Möglichkeit, die Hauptabfrage einer Seite zu ändern, indem sie durch eine neue Instanz der Abfrage ersetzt wird. Es ist ineffizient (führt SQL-Abfragen erneut aus) und wird unter bestimmten Umständen sogar fehlschlagen (besonders häufig, wenn es um die Paginierung von Posts geht).

Sie sind hier wirklich besser dran, um Ihren eigenen Code zu schreiben und das Plugin zu vercasting. Sie können auch das aktuelle Plugin (nur den “guten” Code) mit dem Code verbinden, den ich Ihnen bei Bedarf in Ihr eigenes Plugin geben werde.

Sie sollten niemals Änderungen an Plugin- / Themendateien vornehmen, die Sie nicht selbst erstellt haben. Der größte Grund ist, kommen Update Tag, Sie werden alle Sie Anpassung verlieren. Erstellen Sie stattdessen Ihr eigenes Plugin oder nehmen Sie die Änderungen an einem untergeordneten Thema vor

Was Sie erreichen möchten, ist mit den aktuellen Kategorieparametern nicht möglich. Am besten wetten Sie hier, eine tax_query mit WP_Query . Bei einer tax_query werden standardmäßig tax_query Begriffe in den festgelegten Begriff eingeschlossen, und das ist es, wonach Sie suchen

Sie können Folgendes versuchen ( BITTE BEACHTEN SIE: dies erfordert PHP 5.4+ )

 $args = [ 'post_type' => 'post', 'orderby' => 'meta_value_num', 'meta_key' => 'rankk', 'order' => 'DESC', 'posts_per_page' => 100, 'tax_query' => [ [ 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => 'YOUR PARENT CATEGORY ID', ], ], ]; $q = new WP_Query( $args ); if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); the_title(); } wp_reset_postdata(); } 

Für PHP-Versionen vor 5.4 versuchen Sie dies

 $args = array( 'post_type' => 'post', 'orderby' => 'meta_value_num', 'meta_key' => 'rankk', 'order' => 'DESC', 'posts_per_page' => 100, 'tax_query' => array( array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => 'YOUR PARENT CATEGORY ID', ), ), ); $q = new WP_Query( $args ); if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); the_title(); } wp_reset_postdata(); } 

Du kannst diesen Weg benutzen:

  < ?php $category_id = get_cat_ID('Category Name');  < ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>    < ?php if ( in_category($category_id) ) { ?> 
< ?php } else { ?>
< ?php } ?>
< ?php endwhile; else: ?>

Sorry, no posts matched your criteria.

< ?php endif; ?>

Verwenden Sie diesen Magic Code überall dort, wo Sie ihn anzeigen müssen ….