订阅数量统计
昨天的聚合输出乱码把me的关注点吸引到feed、rss等相关的东东方面来。虽然输出乱码的问题已经暂时解决,但me对feedburner的价值认同大幅度降低,不能再完全依靠它,再次使用其feedflare功能发现超慢之后me就更是无法留恋了。
到WP后台停掉了FeedBurner FeedSmith插件,它的作用是把所有对原生聚合输出的存取都自动转向到feedburner去。这样与feed相关的插件就只剩下Feed Count和Feed 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 = "<a href="http://52good.skylast.com/wp-admin/$map_fc_link">"; $closelink="</a>"; } print " <div class="feedcountdiv"> $openlink<span class="feedcount">\n"; if ($map_fc_before) { print " <span class="before">$map_fc_before</span>\n"; } print "<span class="subscribers">$number</span>\n"; if ($map_fc_after) { print " <span class="after">$map_fc_after</span>\n"; } print "</span>$closelink </div> ";
并且该函数返回值为空,因为它已经把结果print了。其实me只是需要那个$number而已。用一句
eturn $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 ?>
人;本站共计有
<strong>< ?php print $stat_or+$stat_fb;?></strong>
人订阅。不过这样好像不大美观,并且内容复杂,me去feedburner网站下了两个小图标上传至服务器,效果见页面左上角,最终代码如下:
<li> <h2>订阅统计</h2> <ul> <div class="feedcount"> <a href="http://52good.skylast.com/feed/rss/" target=_blank> <img src="/wp-content/imgs/rss.png"/></a></div> </ul> </li>
< ?php if (function_exists('feed_subscribers')) $stat_or=feed_subscribers(); print $stat_or; ?>人,
<a href="http://feeds.feedburner.com/gardenyard" target=_blank><img src="/wp-content/imgs/fb.ico"/></a>
< ?php if (function_exists('fc_feedcount')) $stat_fb=fc_feedcount();print $stat_fb ?>人;共计<b> < ?php print $stat_or+$stat_fb;?></b>人订阅。
至于进一步的美化就需要您自己设计css了,呵呵。
| Tags: css 统计 feed feedburner php rss wordpress | 热度:0.9% | 分享、收藏这篇文章 |
|---|
| 站内热门文章 | 博主随机推荐 |
|---|---|

![Validate my RSS feed [Valid RSS]](/wp-content/imgs/valid-rss.png)
April 13th, 2008 at 3:49 pm
回到管理后台发现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、美化归个人负责。
April 13th, 2008 at 3:55 pm
另,codehighlighter插件可真不好用,非要当时保存不说,切换到Visual后马上就变形了。
朋友们有好的代码显示插件推荐吗?谢谢先!
April 28th, 2008 at 1:07 am
把Feed Statistics卸掉了。首先是因为me通过对statpress的仔细研究和改造,已经可以实现用户直接订阅feed的数量统计;另外就是这个插件居然在wordpress的后台数据库中新建了4个数据表,看着就不爽,不但备份数据库时需要多选4个,就是分析其数据结构也觉得作者水平一般,白白浪费系统资源而已。所以删了了事!