纯代码实现WordPress文章点击浏览次数

纯代码实现WordPress文章点击浏览次数

现在通过 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 文章刷新不影响浏览量点击量统计代码”此文章进行设置。

温馨提示:本文最后更新于2022-05-12 20:16:04,某些文章具有时效性,若有错误或已失效,请在下方留言或联系乡野博文
您阅读这篇文章共花了: 0小时00分00秒
-----本页内容已结束,喜欢请分享!-----
© 版权声明
THE END
喜欢本站内容,请点【点赞】【分享】和【收藏】~
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容