插件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
到当前周的实际值。
有没有其他更聪明、更有效的方法?
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();