不用插件实现统计WordPress文章浏览次数

小菜早就想给文章加个浏览次数统计了,一般都是用wp-postviews或者wp-postviews-plus插件来实现,不过小菜不喜欢用插件,就一直没加,今天在上网时,看到了HotNews这个wp主题(很多博客都是用的这个主题),在浏览主题作者的博客《知更鸟》时看到了不用插件来实现统计WordPress文章浏览次数的方法,小菜测试了下,感觉很不错,就来跟大家分享下。
文章一共提到了两种方法。下面代码来自知更鸟博客
  方法一:
一、在主题functions模版文件中(functions.php)添加下面代码

  1. function getPostViews($postID){
  2.     $count_key = ‘post_views_count’;
  3.     $count = get_post_meta($postID, $count_key, true);
  4.     if($count==”){
  5.         delete_post_meta($postID, $count_key);
  6.         add_post_meta($postID, $count_key, ‘0’);
  7.         return “0 View”;
  8.     }
  9.     return $count.’ Views’;
  10. }
  11. function setPostViews($postID) {
  12.     $count_key = ‘post_views_count’;
  13.     $count = get_post_meta($postID, $count_key, true);
  14.     if($count==”){
  15.         $count = 0;
  16.         delete_post_meta($postID, $count_key);
  17.         add_post_meta($postID, $count_key, ‘0’);
  18.     }else{
  19.         $count++;
  20.         update_post_meta($postID, $count_key, $count);
  21.     }
  22. }

二、在主题single模版(single.php)主循环的中也就是类似这句的下面

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

后加入下面代码

<?php setPostViews(get_the_ID()); ?>

三、最后,将调用显示阅读次数代码加到single模版适当的位置(你想要显示的位置):

<?php echo getPostViews(get_the_ID()); ?>

代码结束

如果想在其它位置显示阅读次数,可以将下面代码也加到functions模版中():

remove_action('wp_head','adjacent_posts_rel_link_wp_head',10,0);

方法二:

一、同样将下面代码加到主题functions模版文件(functions.php)中:

  1. //postviews
  2. function get_post_views ($post_id) {
  3.     $count_key = ‘views’;
  4.     $count = get_post_meta($post_id, $count_key, true);
  5.     if ($count == ”) {
  6.         delete_post_meta($post_id, $count_key);
  7.         add_post_meta($post_id, $count_key, ‘0’);
  8.         $count = ‘0’;
  9.     }
  10.     echo number_format_i18n($count);
  11. }
  12. function set_post_views () {
  13.     global $post;
  14.     $post_id = $post -> ID;
  15.     $count_key = ‘views’;
  16.     $count = get_post_meta($post_id, $count_key, true);
  17.     if (is_single() || is_page()) {
  18.         if ($count == ”) {
  19.             delete_post_meta($post_id, $count_key);
  20.             add_post_meta($post_id, $count_key, ‘0’);
  21.         } else {
  22.             update_post_meta($post_id, $count_key, $count + 1);
  23.         }
  24.     }
  25. }
  26. add_action(‘get_header’, ‘set_post_views’);

 

二、将调用显示阅读次数代码加到single模版(single.php)适当的位置:

<?php get_post_views($post -> ID); ?> views

调用显示阅读次数代码也可以加到其它模版文件的适当位置。
代码原文地址:http://zmingcx.com/no-plugin-wordpress-reads.html

小菜测试的是方法一,使用很正常。小菜温馨提示:修改代码前最好备分原文件,以防万一,特别是用手机编写代码的博友,很容易因网速不好丢失代码。


关于小菜

有认识我的友友吗?

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注