抛弃wp-postview实现无插件文章计数功能 - 愚蠢的凡人

2012年11月01日 / 18评 / 0

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 愚蠢的凡人

  1. 家电品牌说道:

    过来踩一会,有空回踩。

  2. 露水晨曦说道:

    ❗ 不错,但我不太用插件

  3. 一念花开说道:

    对代码不敏感,不想去折腾,感觉越折腾越乱。

  4. 1988说道:

    我在用插件 感觉没多大用

  5. 山姆说道:

    终于~~你也开始折腾了~~~~ :mrgreen: :mrgreen:

  6. 追逐RMB说道:

    呵呵 这个东西以后可以用的上。。

  7. Nemo说道:

    折腾折腾更健康 😆

  8. Jesse说道:

    ip的问题想解决我觉得用文本文档记录一下就好了,可以用ini的方式

  9. 真的是很会倒腾啊 不过是好多了

  10. 代码多了,如果换主题就想死了。而且postview有侧边工具栏可以调用,手动代码木有…

  11. 鲜活优惠码说道:

    不用插件 自然是最好的

发表回复

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