Bedingungen in WP_Query

Was ich versuche, ist folgendes:

Wenn jemand in den letzten 7 Tagen einen Beitrag in der Kategorie ‘Featured’ hinzugefügt hat, wird er in der Schleife angezeigt. Andernfalls zeigen Sie den am häufigsten kommentierten Beitrag der letzten sieben Tage an.

Bisher kann ich den am meisten kommentierten Beitrag anzeigen, aber ich bin mir nicht sicher, wie ich den if / else-Block einrichten soll oder ob es eingebaute functionen im WordPress-core gibt.

 '" . date('Ym-d', strtotime('-7 days')) . "'"; return $where; } $args = array( 'posts_per_page' => 1, 'orderby' => 'comment_count' ); add_filter( 'posts_where', 'filter_where' ); $the_query = new WP_Query( $args ); remove_filter( 'posts_where', 'filter_where' ); ?> have_posts() ) : $the_query->the_post(); ?> ID; ?> <a href="https://wordpress.stackexchange.com/questions/139367/conditionals-in-wp-query/">

Published on by <a href="https://wordpress.stackexchange.com/questions/139367/conditionals-in-wp-query/"><a href="https://wordpress.stackexchange.com/questions/139367/conditionals-in-wp-query/">


Solutions Collecting From Web of "Bedingungen in WP_Query"

Sie können Dinge vereinfachen, indem Sie die date_query von WP_Query() anstelle des posts_where Filters verwenden.

Sie können dann Folgendes versuchen (ungetestet):

 // Fetch from the 'featured' category $args = array( 'posts_per_page' => 1, 'category_name' => 'featured', 'date_query' => array( array( 'after' => '1 week ago' ) ), ); $the_query = new WP_Query( $args ); if ( 0 === $the_query->found_posts ) { // Fetch the most commented post $args = array( 'posts_per_page' => 1, 'orderby' => 'comment_count', ); $the_query = new WP_Query( $args ); } // Your loop here: if( $the_query->have_posts() ) : while( $the_query->have_posts() ) : $the_query->the_post(); // ... endwhile; wp_reset_postdata(); else: _e( 'No posts found!' ); endif; 

Ich hoffe das hilft.