订阅数量统计

昨天的聚合输出乱码把me的关注点吸引到feed、rss等相关的东东方面来。虽然输出乱码的问题已经暂时解决,但me对feedburner的价值认同大幅度降低,不能再完全依靠它,再次使用其feedflare功能发现超慢之后me就更是无法留恋了。

到WP后台停掉了FeedBurner FeedSmith插件,它的作用是把所有对原生聚合输出的存取都自动转向到feedburner去。这样与feed相关的插件就只剩下Feed CountFeed Statistics了。两个都是统计订阅数的,前者针对feedburner,把由其托管的订阅数提取出来,后者则针对原生输出的订阅进行统计。me从来没有用过feedsky等其他烧录服务,因此从理论上讲这两个的统计之和应该就是“天高云淡”的总订阅数。好,下面的任务就是把总订阅数动态显示在侧栏

Feed Count的官方网站这几天一直处于维护状态,没有更详细的资料,好像也不支持widget,只提供了一个函数供调用,如下:

< ?php if (function_exists('fc_feedcount')) fc_feedcount(); ?>

另外Feed Count在WP后台提供了个性化设置界面,可以对上面函数的输出做个性化配置,但是调用该函数后的输出像这样52 位订阅者,不但是字符串不是数值,还带有链接。查看feedcount.php在源码的fc_feedcount函数中发现有这么一部分:

        if (trim($map_fc_link)!='') {
$openlink = "";
$closelink="";
}
print "

$openlink\n"; if ($map_fc_before) { print " $map_fc_before\n"; } print "$number\n"; if ($map_fc_after) { print " $map_fc_after\n"; } print "$closelink
";

并且该函数返回值为空,因为它已经把结果print了。其实me只是需要那个$number而已。用一句

return $number;

替代上面代码就OK了。
再来看Feed Statistics,其调用函数feed_subscribers源码如下:

function feed_subscribers(){
$s = FEED_STATS::how_many_subscribers();
echo $s." feed subscriber";
if ($s != 1) echo "s";
}

我们需要的是那个$s,把它返回就行了。
很好,两个数值我们都可以通过调用函数得到了,下面我们来定制输出:
直接订阅

< ?php if (function_exists('feed_subscribers'))
$stat_or=feed_subscribers();
print $stat_or; ?>

人,通过feedburner订阅

< ?php if (function_exists('fc_feedcount'))
$stat_fb=fc_feedcount();
print $stat_fb ?>

人;本站共计有

< ?php print $stat_or+$stat_fb;?>

人订阅。不过这样好像不大美观,并且内容复杂,me去feedburner网站下了两个小图标上传至服务器,效果见页面左上角,最终代码如下:

	
  • 订阅统计

  • < ?php if (function_exists('feed_subscribers')) $stat_or=feed_subscribers(); print $stat_or; ?>人,
     
    < ?php if (function_exists('fc_feedcount')) $stat_fb=fc_feedcount();print $stat_fb ?>人;共计
    < ?php print $stat_or+$stat_fb;?>人订阅。

    至于进一步的美化就需要您自己设计css了,呵呵。

    作者: heart5

    生命如歌,我自徜徉。

    《订阅数量统计》有3个想法

    1. 把Feed Statistics卸掉了。首先是因为me通过对statpress的仔细研究和改造,已经可以实现用户直接订阅feed的数量统计;另外就是这个插件居然在wordpress的后台数据库中新建了4个数据表,看着就不爽,不但备份数据库时需要多选4个,就是分析其数据结构也觉得作者水平一般,白白浪费系统资源而已。所以删了了事!

    2. 另,codehighlighter插件可真不好用,非要当时保存不说,切换到Visual后马上就变形了。
      朋友们有好的代码显示插件推荐吗?谢谢先!

    3. 回到管理后台发现feed-statistics中部分信息无法正常显示了,原因在于me更改函数后其他地方仍用原来的方式调用,查了下共有两处,改过来就是了。
      下面是修改后的源文件打包
      http://52good.skylast.com/wp-content/uploads/feedtotal.zip
      使用注意事项:
      1、必须安装了feed count和feed statistics两个插件并已经激活;
      2、把上面包中的文件分别放到相应的目录中去,feed count在插件目录下的feedcount目录下,feed statistics就在插件目录下;
      3、进入模板设计,调用me在文章示例的代码即可;
      4、美化归个人负责。

    发表评论

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