• 注册
  • 个人说明:TA有点懒了,什么都没有写。
    关注 1 粉丝 0 喜欢 0 内容 256
    河南省·郑州市
    聊天 送礼

    新版界面开发进度

    14%
    其实就是啥也没写,只有想法,哈哈
    • 回帖总排行
    • 采纳总排行

    分享精彩给好友

    全部文章 关注:0 内容:1074

    WordPress代码实现统计阅读数【转】

  • 查看作者
  • 打赏作者
  • 拉黑名单
    • 经常看到有WordPress站长在到处找统计文章阅读数量的插件,其实一般国内的主题都自带阅读数量统计,国外的就不知道了,我想应该很少有的,毕竟国外的WordPress主题大部分都是非常精简的,比如WordPress官方给的主题。那么想要给自己用的WordPress主题增加一个统计文章阅读数量的功能很困难吗?答案肯定是十分简单,仅仅只需3步即可拥有这个功能。

      WordPress代码实现统计阅读数

      不过在实现这个功能之前,必须提醒各位,统计文章阅读数量的功能函数不会被WordPress的对象缓存机制识别,也就是说不会被缓存,加了这个功能会导致页面的sql查询数量增加1次,如果你对查询数量有所要求,还对这个数量的准确性有要求的话,还是建议不要使用了。当然如果你必须要这个功能,但对数量准确性要求不是特别高,那么可以参考memcached缓存将这个数据存在内存中,等它累计10次、20次再写入数据库中,这样如果memcached服务被重启、刷新都将丢失一些阅读量。具体如何选择看诸位自己,这里提供方法,不包括优化。

      实现原理

      通过WordPress官方提供的add_post_meta方法,将用户自定义字段存储在wp_postmeta表中,在用户需要的时候通过get_post_meta方法获取,需要修改时使用update_post_meta方法修改更新。详细使用方法见:WordPress函数add_post_meta详解

      实现方法

      在你的主题functions.php文件中插入如下代码:

      记录文章阅读数量

      \\记录文章阅读数量
      function _post_views_record() {
      	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);
      			}
      		}
      	}
      }

      获取文章阅读数量

      \\获取文章阅读数量
      function _get_post_views($before = '阅读(', $after = ')') {
      	global $post;
      	$post_ID = $post->ID;
      	$views = (int) get_post_meta($post_ID, 'views', true);
      	return $before . $views . $after;
      }

      然后打开主题的header.php文件,在头部加入如下代码,调用记录阅读数量方法:

      <?php _post_views_record(); ?>

      这样每次打开页面都将会执行这个方法,自动将阅读数记录下来。

      然后在文章列表模板,或者文字页模板single.php中你想显示阅读数量的位置,添加获取文章阅读数量的方法。

      <?php echo _get_post_views();?>

      好了,到此你就已经成功集成了文章阅读数量的统计功能,在做这些操作前记得先打个磁盘快照,或者备份下文件,如果操作失误导致数据丢失,本站概不负责。

      你需要登录,才能进行发帖操作