Condicionais em WP_Query

O que estou tentando fazer é o seguinte:

Se nos últimos 7 dias alguém adicionou uma postagem na categoria ‘featured’ a exibir no loop. Caso contrário, exiba a publicação mais comentada nos últimos sete dias.

Até agora, posso exibir a publicação mais comentada, mas não tenho certeza de como configurar o bloco if / else ou se há funcionalidades incorporadas no núcleo wordpress.

 '" . 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 "Condicionais em WP_Query"

Você pode simplificar as coisas usando a date_query de WP_Query() , em vez do filtro de posts_where .

Você pode tentar o seguinte (não testado):

 // 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; 

Espero que esta ajuda.