通过Wordpress rss feed显示过去7天内观看次数最多的观看次数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Wordpress rss feed显示过去7天内观看次数最多的观看次数相关的知识,希望对你有一定的参考价值。
我的WP网站需要两个提要。一个应该是普通的wp post feed <另一个 - 必须显示过去七天观看次数最多的观看次数。我还想显示来自WP-PostViews插件计数器的帖子视图。
我通过向feed-rss2添加WP-PostViews功能来尝试它。它有效,但我不能将输出限制为7天七天
get_most_viewed('post', 10);
答案
我们需要做的第一件事是创建一个函数来检测帖子视图计数并将其存储为每个帖子的自定义字段。为此,请将以下代码粘贴到主题的functions.php文件中。
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);
现在你已经有了这个功能,我们需要在单个帖子页面上调用这个函数。通过这种方式,函数可以准确地知道哪些帖子获得了视图的功劳。为此,您需要在单个post循环中粘贴以下代码:
wpb_set_post_views(get_the_ID());
您只需使用wp_head hook在标题中添加跟踪器即可。因此,将以下代码粘贴到主题的functions.php文件中。放置此文件后,每次用户访问帖子时,都会更新自定义字段。
function wpb_track_post_views ($post_id) {
if ( !is_single() ) return;
if ( empty ( $post_id) ) {
global $post;
$post_id = $post->ID;
}
wpb_set_post_views($post_id);
}
add_action( 'wp_head', 'wpb_track_post_views');
您想在单个帖子页面上显示帖子查看次数
function wpb_get_post_views($postID){
$count_key = 'wpb_post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 View";
}
return $count.' Views';
}
Then inside your post loop add the following code:
wpb_get_post_views(get_the_ID());
如果要按视图计数对帖子进行排序,则可以使用wp_query post_meta参数轻松完成。最基本的示例循环查询如下所示:
<?php
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();
the_title();
endwhile;
?>
以上是关于通过Wordpress rss feed显示过去7天内观看次数最多的观看次数的主要内容,如果未能解决你的问题,请参考以下文章
PHP 仅在作者页面上显示WordPress作者RSS Feed