Die WP_Query-Bedingung wirkt sich auf die Anzahl der posts_per_page aus

Ich versuche, eine neue WP_Query zu erstellen, die die letzten 5 Posts von Katze 1 anzeigt, die keine Miniaturansicht haben. Das funktioniert tatsächlich:

 have_posts() ) : $the_query->the_post(); if ( ! has_post_thumbnail() ) { ?> 
  • <a href="https://wordpress.stackexchange.com/questions/173313/wp-query-condition-affects-posts-per-page-count/">
  • Aber sagen wir mal von den letzten 5 Posts, 3 haben das Thumbnail; In diesem Fall werden nur 2 Beiträge angezeigt. Ich möchte 5 als feste Anzahl von posts_per_page und wenn in der Schleife am Ende Beiträge mit Thumbnail angezeigt werden, werden die älteren Posts angezeigt (um die Anzahl von 5 zu erreichen), anstatt nur die 2 ohne Thumbnails anzuzeigen.

    Ich habe versucht, das if vor $the_query aber es hat nicht funktioniert.

    Solutions Collecting From Web of "Die WP_Query-Bedingung wirkt sich auf die Anzahl der posts_per_page aus"

    Sie können versuchen, Beiträge, die kein vordefiniertes Bild haben, mit folgenden Elementen abzurufen:

     $ppp = 5; // posts per page /** * Fetch $ppp posts, without thumbnails, in a given category: */ $args = array( 'cat' => 1, 'posts_per_page' => $ppp, 'meta_query' => array( array( 'key' => '_thumbnail_id', 'compare' => 'NOT EXISTS', ), ), ); $myposts = get_posts( $args ); 

    Aber was ist, wenn es in dieser Kategorie nicht genügend Beiträge ohne ein vorgestellten Bild gibt? Nun, dann können wir einfach den Rest mit Posts mit einem vorgestellten Bild füllen:

     /** * Fetch $ppp-x posts in a given category, with thumbnails, if x > 0: */ if( $count = count( $posts ) < $ppp ) { $args = array( 'cat' => 1, 'posts_per_page' => $ppp - $count, 'meta_query' => array( array( 'key' => '_thumbnail_id', 'compare' => 'EXISTS', ), ), ); $myposts = array_merge( $posts, get_posts( $args ) ); } 

    Dann können Sie Ihre Schleife einrichten mit:

     global $post; foreach( $myposts as $post ) { setup_postdata( $post ); ?>
  • < ?php the_title(); ?>
  • < ?php } wp_reset_postdata();

    Sie können auch überprüfen, ob Sie genügend Beiträge in der entsprechenden Kategorie erhalten haben.

    Beachten Sie, dass dies nicht getestet ist, aber ich hoffe, dass Sie dies an Ihre Bedürfnisse anpassen können.

    ps: Wenn ich mich richtig erinnere, hat @kaiser im allgemeinen Fall schon etwas ähnliches getriggers, mit ein paar zusätzlichen Geschmäcken 😉

    Ich werde einen Link hinzufügen, wenn ich es finde.

    Update: Ich fand es hier , denke ich. Dort gibt es einige interessante Antworten.