Sort Popular Posts by Views for the Last Week

I'm trying to sort the popular posts so it shows the most visited in the last week, but it hasn't worked. Anyone have an idea of why it isn't working?

?php 

$popularpost = new WP_Query( array (

        'posts_per_page'      = 5,
        'ignore_sticky_posts' = 1,
        'meta_key'            = 'sw_post_views_count',
        'orderby'             = 'meta_value_num',
        'order'               = 'DESC',
        'date_query'          = array (
                array (
                        'year' = date( 'Y' ),
                        'week' = date( 'W' ),
                ),
        ),
) );

while( $popularpost-have_posts() ) :
       $popularpost-the_post(); ?

Topic meta-query popular-posts loop Wordpress

Category Web


Use strtotime to compare dates.

$start = strtotime('yesterday');
$end = strtotime( '+1 week',$start);

$args = array(
    'posts_per_page' => 5,
    'ignore_sticky_posts' => 1,
    'meta_key' => 'sw_post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
    'date_query' => array(
        'after' => $end,
        'before' => $start,
    ),
);

$popularpost = new WP_Query( $args );

if ( $popularpost->have_posts() ) {

    while ( $popularpost->have_posts() ) {
        $popularpost->the_post();

        // Do your stuffs

    }

} 

Please note, this will return the posts from last 7 days, not last week.


If you are looking for plugin then this is simple way to install Plugin: WordPress Popular Posts

Add Shortcode to sidebar:

  [wpp range=weekly stats_comments=0 thumbnail_width=30 thumbnail_height=30 thumbnail_selection=usergenerated do_pattern=1 pattern_form={image}]

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.