Ich möchte Beiträge monatlich abfragen

Ich habe eine Seite, auf der ich monatlich Blogposts zeigen möchte. Und ich möchte den Beitrag des vorherigen Monats anzeigen, wenn der aktuelle Monat keine Beiträge hat. Etwas wie das unten angegebene Bild. Es zeigt die Posts von August, da der September keinen Post hat. Bildbeschreibung hier eingeben

Hier der Code, den ich am aktuellen Monat posten werde:

 array( 'year' => date( 'Y' ), 'monthnum' => date( 'm' ), ), 'posts_per_page' => 10, 'paged' => $paged, 'order' => 'ASC', ); $query = new WP_Query( $args ); if ( $query->have_posts() ): while($query->have_posts()): $query->the_post(); ?> 

<a href="https://wordpress.stackexchange.com/questions/239359/i-want-to-query-posts-in-monthly-basis/" rel="bookmark" title="Permanent Link to ">

Aber wie kann ich Beiträge im vorherigen Monat anzeigen, wenn der aktuelle Monat keine Beiträge hat?

Solutions Collecting From Web of "Ich möchte Beiträge monatlich abfragen"

Erhalte zuerst den aktuellen Monat und das Jahr:

 $month = int(current_time('m')); $year = int(current_time('Y')); 

Als nächstes erhalten Sie die Beiträge in diesem Monat:

 $query = new WP_Query( 'year=' . $year . '&monthnum=' . $month ); 

Wenn die Abfrage im letzten Monat eine leere Abfrage zurückgibt, wiederholen Sie dies, bis Sie einen nicht leeren Monat gefunden haben:

 while (empty($query)) { $month = $month-1; if ($month == 0) { $month = 12; $year=$year-1;} $query = new WP_Query( 'year=' . $year . '&monthnum=' . $month ); } 

Ich habe diesen Code, der etwas ähnliches tut, aber es zählt nur Beiträge. Wenn du die benötigten Informationen in der SQL-Datei greifst, sollte sowas funktionieren …

 global $wpdb; $searchmonth = sprintf("%02s", absint($monthint)); $searchyear = 2016; $found_posts = $wpdb -> get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' AND post_date LIKE '%-$searchmonth-%' AND post_date LIKE '$searchyear%' "); if($found_posts){ /* do something */ }else{ if(1!=$monthint){ $monthint--; }else{ $monthint=12; $searchyear--; } /* get info for previous month */ } $wpdb -> flush();