最近开始陆续在主站上更新一些文章,但发现目前的主题(flatbase)只有它自定义的文章有阅读次数和点赞的功能,而不支持WordPress的默认文章。
主题默认样式.jpg
默认的只显示作者和评论数(对于作者来说还多了一个编辑按钮)。
要实现该功能,最简单的方法当然还是安装插件,不过网上有现成的代码还是尽量少装插件吧。
代码网上现成的很多,这里就借用WordPress大学的,代码如下:

/* 访问计数 */
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;
}

之前已经生成过子主题了(参见《在WordPress中嵌入Google Analytics》),所以直接将上面的代码粘贴至functions.php文件中。
接下去,在需要显示该统计次数的地方使用下面的代码调用:

<?php post_views(' ', ' 次'); ?>

这一点把我给难住了,因为我并不清楚主题中是在何处调用的。
先尝试将父主题中的single.php复制到子主题中,然后按照网上的说法,在endwhile之前插入上面的代码。刷新页面,完全没效果(事实上显示的内容被放在了页面的最下方,不拉到最后是不会被注意到的)。
只能用VS Code打开主题,结合浏览器的开发者工具,以几个html标签的class为关键词进行搜索,最终在一个埋得很深的文件中找到了线索。
flatbase主题代码.jpg
接下去就简单了,将该文件连同文件夹一同复制到子主题目录下,然后在主题编辑器中按照其他几项的样式插入上述代码。刷新页面后成功!
WordPress增加阅读次数统计.jpg
其实,该方法最大的难点就在于那句“在需要显示该统计次数的地方使用下面的代码调用”,不管英文还是中文,搜索的结果都大同小异,作者都默认读者知道应该放在哪里。当然,每个主题都不一样,确实没法给出统一的结果。

最后修改:2024 年 06 月 19 日
如果觉得我的文章对你有用,请随意赞赏