每周显示最受欢迎的帖子

时间:2014-11-21 作者:Philip

插件Most Popular Posts 不支持WPML 因此,我尝试创建自己的。

我在创建自己的代码以显示我网站上最流行的帖子时发现了本教程:How to Display Popular Posts by Views in WordPress without a Plugin

然而,这不包括每周的因素。我希望它在如何做到这一点上被指向正确的方向。

此代码更新posts实际视图计数:

function wpb_set_post_views($postID) {
    $count_key = \'wpb_post_views_count\';
    $count = get_post_meta($postID, $count_key, true);
    if($count==\'\'){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, \'0\');
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}
//To keep the count accurate, lets get rid of prefetching
remove_action( \'wp_head\', \'adjacent_posts_rel_link_wp_head\', 10, 0);
将以下字段添加到帖子:

week_count: integer
current_week: datetime
检查是否current_week 匹配当前周的实际值,否则重置week_count 和添加1并设置current_week 到当前周的实际值。

有没有其他更聪明、更有效的方法?

1 个回复
SO网友:Robert hue

好的,下面是显示本周热门帖子的完整查询。我正在使用meta_query 仅将查询结果限制在本周内。

它将获取本周的所有帖子,然后按自定义字段添加的帖子浏览次数对其进行排序wpb_post_views_count 你在问题中使用的。

// Current week\'s popular posts

$query_args = array(
    \'post_type\' => \'post\',
    \'date_query\' => array(
        array(
            \'year\' => date( \'Y\' ),
            \'week\' => date( \'W\' ),
        ),
    ),
    \'meta_key\' => \'wpb_post_views_count\',
    \'orderby\' => \'meta_value_num\',
    \'ignore_sticky_posts\' => 1,
    \'posts_per_page\' => \'-1\',
);

$my_query = new WP_Query( $query_args );

if ( $my_query->have_posts() ) :
    while ( $my_query->have_posts() ) : $my_query->the_post();

        // add your loop content here.

    endwhile;
endif;

wp_reset_postdata();

结束

相关推荐

基于PHP结果的隐藏按钮

这是我正在努力实现的目标,但我不确定如何实现:我想检查一篇特定的帖子是否已经发布,如果没有发布,它应该隐藏一个特定的按钮,并在它的位置显示一个不同的按钮,我认为这是PHP和CSS的结合,但我不确定从哪里开始。提前感谢您的帮助Charis