现在通过 wordpress 系统建站已经非常普遍,但是如果想在网站文章上显示每篇文章的浏览数量,大部分人会想到使用 wordpress 浏览量插件 WP-PostViews,它可以准确有统计并显示文章总共的浏览量。我们知道 wordpress 插件的好处在于使用方便简单,当然缺点在于会拖累我们网站打开速度。那么我们今天分享纯代码实现 WordPress 文章点击浏览次数,这个功能非常实用相信很多博客更喜欢这种方式(当然你也可以使用这个插件来实现同样的功能):
实现 wordpress 文章浏览次数很简单,将下面代码加入到 functiuons.php 中:
/*实现文章浏览次数*/
function getPostViews($postID) {
$count_key = "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";
}
function setPostViews($postID) {
$count_key = "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 );
}
}
将如下代码插入 single.php 文件中要显示浏览次数的位置:
<?php setPostViews(get_the_ID()); ?>
<?php echo getPostViews(get_the_ID()); ?>
需要在哪个页面显示文章的浏览次数,就在相应的模板文件中加入:
在 wordpress 主题函数模板 functiuons.php 中加入:
//文章阅读次数统计与调用
function record_visitors(){
if (is_singular()){
global $post;
$post_ID = $post->ID;
if($post_ID){
$post_views = (int)get_post_meta($post_ID, 'views', true);
if(!update_post_meta($post_ID, 'views', ($post_views+1))){
add_post_meta($post_ID, 'views', 1, true);
}}}}
add_action('wp_head', 'record_visitors');
function post_views($before = '(', $after = ')', $echo = 1)
{
global $post;
$post_ID = $post->ID;
$views = (int)get_post_meta($post_ID,'views', true);
if ($echo) echo $before, number_format($views), $after;
else return $views;
}
在模板需要调用的地方加入函数即可:
<?php post_views('', ''); ?>
首先在网站后台的 wordpress 模板函数 functions.php 文件中加入以下的代码:
/*文章浏览量*/
function record_visitors()
{
if (is_singular())
{
global $post;
$post_ID = $post->ID;
if($post_ID)
{
$post_views = (int)get_post_meta($post_ID, 'views', true);
if(!update_post_meta($post_ID, 'views', ($post_views+1)))
{
add_post_meta($post_ID, 'views', 1, true);
}
}
}
}
add_action('wp_head', 'record_visitors');
/// 函数名称:post_views
/// 函数作用:取得文章的阅读次数
function post_views($before = '(点击 ', $after = ' 次)', $echo = 1)
{
global $post;
$post_ID = $post->ID;
$views = (int)get_post_meta($post_ID, 'views', true);
if ($echo) echo $before, number_format($views), $after;
else return $views;
}
然后需要显示浏览量的地方,包括首页,分类页,文章页都可以使用,添加浏览量调用代码:
<?php post_views(' ', ''); ?>
注意头部模板中,添加 WP HOOK 函数标签,放在标签上面:
<?php wp_head();?>
悠然自学提供的简化版(如果一个页面多次调用,就需要设置一次 session 或者 cookies 来防止多次增加)
function youran_get_views($post_id = null, $num = 1)
{
//如果没有传输文章ID
if (!$post_id) {
//获取当前循环中的文章ID,文章页直接获取当前文章ID
global $post;
$post_id = $post->ID;
}
//得到当前文章的浏览量,如果没有就等于1
$views = get_post_meta($post_id, 'views', true) ?: 1;
//如果有文章,并且是在文章内容页,或者页面内容页
if ($post_id && (is_single() || is_page())) {
//更新文章浏览量
update_post_meta($post_id, 'views', $views + $num);
}
//输出数量
return $views;
}
以上就是 WordPress 免插件实现显示文章浏览量次数的几种常见方法,原理基本都一样,选择适合自己的任何一种,都可以实现在自己建网站时显示文章的浏览量了,但是有一个弊端就是每刷新一下,浏览量自动的增加一次,如果你不希望刷新增加浏览量可以阅读“WordPress 文章刷新不影响浏览量点击量统计代码”此文章进行设置。
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!