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

现在通过 WordPress 系统建站已经非常普遍,但是如果想在网站文章上显示每篇文章的浏览数量,大部分人会想…

现在通过 WordPress 系统建站已经非常普遍,但是如果想在网站文章上显示每篇文章的浏览数量,大部分人会想到使用 wordpress 浏览量插件 WP-PostViews,它可以准确有统计并显示文章总共的浏览量。我们知道 wordpress 插件的好处在于使用方便简单,当然缺点在于会拖累我们网站打开速度。那么我们今天分享纯代码实现 WordPress 文章点击浏览次数,这个功能非常实用相信很多博客更喜欢这种方式(当然你也可以使用这个插件来实现同样的功能):

方法一

实现 wordpress 文章浏览次数很简单,将下面代码加入到 functiuons.php 中:

  1. /*实现文章浏览次数*/
  2. function getPostViews($postID) {
  3. $count_key = "post_views_count";
  4. $count = get_post_meta ( $postID, $count_key, true );
  5. if ($count == "") {
  6. delete_post_meta ( $postID, $count_key );
  7. add_post_meta ( $postID, $count_key, "0" );
  8. return "0 View";
  9. }
  10. return $count . " Views";
  11. }
  12. function setPostViews($postID) {
  13. $count_key = "post_views_count";
  14. $count = get_post_meta ( $postID, $count_key, true );
  15. if ($count == "") {
  16. $count = 0;
  17. delete_post_meta ( $postID, $count_key );
  18. add_post_meta ( $postID, $count_key, "0" );
  19. } else {
  20. $count ++;
  21. update_post_meta ( $postID, $count_key, $count );
  22. }
  23. }

将如下代码插入 single.php 文件中要显示浏览次数的位置:

  1. <?php setPostViews(get_the_ID()); ?>
  2. <?php echo getPostViews(get_the_ID()); ?>

需要在哪个页面显示文章的浏览次数,就在相应的模板文件中加入:

方法二

在 wordpress 主题函数模板 functiuons.php 中加入:

  1. //文章阅读次数统计与调用
  2. function record_visitors(){
  3. if (is_singular()){
  4. global $post;
  5. $post_ID = $post->ID;
  6. if($post_ID){
  7. $post_views = (int)get_post_meta($post_ID, 'views', true);
  8. if(!update_post_meta($post_ID, 'views', ($post_views+1))){
  9. add_post_meta($post_ID, 'views', 1, true);
  10. }}}}
  11. add_action('wp_head', 'record_visitors');
  12. function post_views($before = '(', $after = ')', $echo = 1)
  13. {
  14. global $post;
  15. $post_ID = $post->ID;
  16. $views = (int)get_post_meta($post_ID,'views', true);
  17. if ($echo) echo $before, number_format($views), $after;
  18. else return $views;
  19. }

在模板需要调用的地方加入函数即可:

  1. <?php post_views('', ''); ?>

方法三

首先在网站后台的 wordpress 模板函数 functions.php 文件中加入以下的代码:

  1. /*文章浏览量*/
  2. function record_visitors()
  3. {
  4.     if (is_singular())
  5.     {
  6.       global $post;
  7.       $post_ID = $post->ID;
  8.       if($post_ID)
  9.       {
  10.           $post_views = (int)get_post_meta($post_ID, 'views', true);
  11.           if(!update_post_meta($post_ID, 'views', ($post_views+1)))
  12.           {
  13.             add_post_meta($post_ID, 'views', 1, true);
  14.           }
  15.       }
  16.     }
  17. }
  18. add_action('wp_head', 'record_visitors');
  19. /// 函数名称:post_views  
  20. /// 函数作用:取得文章的阅读次数  
  21. function post_views($before = '(点击 ', $after = ' 次)', $echo = 1)
  22. {
  23.   global $post;
  24.   $post_ID = $post->ID;
  25.   $views = (int)get_post_meta($post_ID, 'views', true);
  26.   if ($echo) echo $before, number_format($views), $after;
  27.   else return $views;
  28. }

然后需要显示浏览量的地方,包括首页,分类页,文章页都可以使用,添加浏览量调用代码:

  1. <?php post_views(' ', ''); ?>

注意头部模板中,添加 WP HOOK 函数标签,放在标签上面:

  1. <?php wp_head();?>

悠然自学提供的简化版(如果一个页面多次调用,就需要设置一次 session 或者 cookies 来防止多次增加)

  1. function youran_get_views($post_id = null, $num = 1)
  2. 	{
  3. 		//如果没有传输文章ID
  4. 		if (!$post_id) {
  5. 			//获取当前循环中的文章ID,文章页直接获取当前文章ID
  6. 			global $post;
  7. 			$post_id = $post->ID;
  8. 		}
  9. 		//得到当前文章的浏览量,如果没有就等于1
  10. 		$views = get_post_meta($post_id, 'views', true) ?: 1;
  11. 		//如果有文章,并且是在文章内容页,或者页面内容页
  12. 		if ($post_id && (is_single() || is_page())) {
  13. 			//更新文章浏览量
  14. 			update_post_meta($post_id, 'views', $views + $num);
  15. 		}
  16. 		//输出数量
  17. 		return $views;
  18. 	}

以上就是 WordPress 免插件实现显示文章浏览量次数的几种常见方法,原理基本都一样,选择适合自己的任何一种,都可以实现在自己建网站时显示文章的浏览量了,但是有一个弊端就是每刷新一下,浏览量自动的增加一次,如果你不希望刷新增加浏览量可以阅读“WordPress 文章刷新不影响浏览量点击量统计代码”此文章进行设置。

类别:WordPress教程

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册