我们需要做的第一件事是创建一个函数来检测帖子视图计数,并将其存储为每个帖子的自定义字段。为此,请在主题的函数中粘贴以下代码。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\\u head hook在标题中添加跟踪器。因此,请在主题函数中粘贴以下代码。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\');
一旦您放置了此项,每次用户访问帖子时,自定义字段都会更新。
注意:如果您使用的是缓存插件,默认情况下此技术将不起作用。我们使用的是W3 Total Cache,它具有称为碎片缓存的功能。你可以用它来完成这项工作。以下是需要更改的内容:
<!-- mfunc wpb_set_post_views($post_id); --><!-- /mfunc -->
现在,您可以做各种很酷的事情,比如显示帖子视图计数,或者按视图计数对帖子进行排序。让我们看看如何做这些很酷的事情。
如果要在单个帖子页面上显示帖子视图计数(通常在评论计数或其他内容旁边)。然后,您需要做的第一件事是在主题的函数中添加以下内容。php文件
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\';
}
然后在post循环中添加以下代码:
wpb_get_post_views(get_the_ID());
如果要按视图计数对帖子进行排序,那么可以通过使用wp\\u query post\\u元参数轻松地进行排序。最基本的循环查询示例如下所示:
<?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;
?>