web-dev-qa-db-fra.com

Limiter les messages populaires par jours

J'utilise ce tableau get_posts pour récupérer les 15 commentaires les plus populaires. Le problème est que cela montre que tous les posts très commentés du jour ont été ajoutés au blog. Ainsi, la liste change parfois mais la plupart du temps reste la même.

Comment puis-je limiter/afficher les publications des 7 derniers jours? Cela montrerait les messages les plus commentés de la semaine dernière.

Merci

Voici mon code:

global $post;

$args = array(
'orderby' => 'comment_count',
'order' => 'DESC' ,
'numberposts' => 15);

$popular_posts = get_posts( $args );

foreach( $popular_posts as $post ) :

if (has_post_thumbnail()) { ?>
<li>

<div class="widgetimg">
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('widgetimg-thumb'); ?></a>
</div>

</li>
<?php } endforeach; ?>
1
10wtaylor

Voici une fonction qui affiche les messages des 7 derniers jours ou que vous pouvez modifier en fonction de vos besoins.

function filter_where($where = '') {
        //posts in the last 7 days
        $where .= " AND post_date > '" . date('Y-m-d', strtotime('-7 days')) . "'";
        return $where;
}
add_filter('posts_where', 'filter_where');
1
Adi