愚蠢的凡人

抛弃wp-postview实现无插件文章计数功能

wp-postview我想在很多博主中使用最为广泛的一个文章计数插件。包括我自己之前也一直在用。但是别人说能不装插件最好不装插件,想想自己的WordPress貌似装了好几个插件,对于有点龟毛的我来说有点受不了,所以检查下后台那个插件能用代码代替的尽量用代码优化,说做就做,问了度娘之后赶紧实施了。

电脑代码

对于技术性的东西没有什么研究更不是科班出身所以往往对于代码只有拿来主义。这些代码都是网上拿过来的。首先要在自己主题的function.php里加入如下代码:

//登记文章浏览量的函数

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);
????}
}
//读取文章浏览量的函数
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 次";
????}
????return $count.' 次';
}

当然,如果你可以替换掉上面代码的“次”为你想展示的文字即可,如我的是“Views”。接着就在single.php中加入两函数:

第一函数是用来计算文章点击数的这个代码放到single.php的循环里:

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

第二个函数则是则是你想让这些数字显示在哪里就在那个地方贴上以下代码(要是你也想在首页出现这些文章点击量的话也可以在index.php中你想展示的位置贴上以下代码):

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

怎么样?是不是成功了呢?这个代码唯一的缺点就是哪怕相同IP只要重复点击都计算一次。有空看看怎么解决掉。

By 愚蠢的凡人

码字很辛苦,转载请注明来自愚蠢的凡人《抛弃wp-postview实现无插件文章计数功能》

评论