Entfernen doppelter Werte zwischen zwei WordPress-Abfragen

Ich adressiere ein bekanntes Problem in WordPress, in dem ich “featured” Beiträge und darunter den Rest der Beiträge anzeigen möchte.
Ich habe eine $query1 , die 2 vorgestellten Beiträge enthält, und meine query_posts , die alle Beiträge auf der Website enthält (einschließlich dieser beiden aus $query1 ).
Ich möchte query_posts diese beiden Beiträge aus query_posts entfernen, damit ich sie mit regulären WordPress-Schleifen in Form von:

 while (have_posts ()) : the_post(); the_title(); the_content(); endwhile; 

Ich habe die Lösung für das Entfernen dieser doppelten Posts innerhalb der oben genannten Schleife, aber wegen der Auslagerung möchte ich die Abfrage ohne Duplikate davor haben, so dass das Array query_posts ohne diese beiden vorgestellten Posts query_posts wird.

Solutions Collecting From Web of "Entfernen doppelter Werte zwischen zwei WordPress-Abfragen"

Basierend auf verschiedenen Antworten, mit einem SPECIAL dank EAManns ähnlicher Antwort – hier ist die Methode, der ich gefolgt bin.

  1. Verwenden von new WP_Query anstelle von query_posts für diese Seite.
  2. Definieren der $main_query ( $main_query ) als global
  3. Abfragen eines temporären Arrays ( $temp_featured ) mit meinen vorgestellten Posts
  4. Erstellen eines Arrays mit nur den IDs von `$ temp_featured ‘. Beachten Sie, dass EAMann die function wp_list_pluck verwendet.
  5. Ausführen der Hauptabfrage der Seite ( $main_query ) mit dem Argument, um die in # 4 abgerufenen IDs auszuschließen.

So kam es insgesamt heraus:

 global $main_query; $temp_featured = get_posts( array( 'post_type' => 'custom_post', 'custom_post-category' => 'featured-cat', 'posts_per_page' => 2) ); $featured_ids = wp_list_pluck( $temp_featured, 'ID' ); $query_args = array( 'post_type' => 'custom_post', 'posts_per_page' => $per_page, 'paged' => $current_page, 'post__not_in' => $featured_ids ); $main_query = new WP_query ($query_args); //displaying the two featured posts with their own query $featured = new WP_query( array( 'post_type' => 'custom_post', 'custom_post-category' => 'featured-cat', 'posts_per_page' => 2) ); while ($featured->have_posts ()) : $featured->the_post(); the_title(); the_excerpt(); endwhile; //displaying the full query of the page if ($main_query->have_posts ()) : while ($main_query->have_posts ()) : $main_query->the_post(); the_title(); the_excerpt(); endwhile; endif; 

Ich hoffe, das hilft jedem – bitte bearbeiten / kommentieren oder kontaktieren Sie mich, wenn Sie weitere Gedanken oder Anfragen haben.