StatPressCN,1.7.0.3版本

功能开发:

  1. 添加404页面子菜单,显示没有找到结果(可能是blog链接错误,也有可能是浏览者输入了错误的网址,或者是恶意访问,比如hacker)的访问记录,一方面提高统计准确度(去掉了无效访问),另外还可以给高级用户提供网站的全面被访情况,方便作出应对(比如可以把某些恶意访问的ip拉入禁止ip清单中);更新了统计规则,不再处理404页面访问,统计结果更精确;
  2. 对子菜单进行梳理,简洁化,默认不再显示export、banip、spider、update,这些功能模块作为高级功能,如果需要,可以在option中选择启用;
  3. 在统计系统升级中增加了对404访问记录的处理,可以选择全部删除之;
  4. 对搜索功能进行丰富,增加了一个维度,可以查询更多的信息;
  5. 丰富了移动来访的定义规则,新增了对联想(Lenovo)手机的支持。

代码改进:

  1. 调整StatPressCN插件挂入的地方,原来是send_header,现在调整为template_redirect,解决了404页面无法判断的问题;
  2. 给统计数据库增加了一个字段statuscode,记录http的返回码,比如404;对每次访问的记录都会提前检查数据库结构,因为改变了数据库结构;
  3. 修正了对帖子id的判断方法,可以正确识别文章标题中包含中文等字符的链接并正确显示;
  4. 忽略掉对/wp-comments-post.php的记录,这个是留言时自动调用的管理函数页面。

下载升级:

  • 请到wordpress官方插件网址下载最新版本,ftp到服务器上去;
  • 或者,如果您的wordpress是2.7版本以上的,那就耐心等段时间(大约几个小时吧),管理后台会自动提示升级的;
  • 提示升级至本版本会影响数据库中的数据记录

开发笔记

在检测404页面访问的时候花了n长时间都无法获得准确的数据,明明页面不存在,但http的statuscode却显示为200。后来仔细查阅了很多资料都不得其法,最后还是参阅了mystat的代码才找到了合适的入口,那就是template_redirect,也即是模板主题文件调用前。如果有时间还是需要把wordpress的运作机制彻底弄懂。

对非常规(可能合法也可能不合法)的页面访问很重要。原来一直想开发一个功能,能自动禁止那些恶意访问,比如对后缀名mdb文件的访问(明显是想借助某些漏洞拿到me的数据库嘛),但这个功能实现的前提是能判断页面是否被正常访问了。wordpress有自己的机制处置这些问题,那就是is_404()函数。这个大问题解决后就可以构建自动防护系统了。

统计插件的易用性也是个重要考量的地方。这次把高级功能默认不显示,对新手来讲应该是个好事。他们本来不需要、也不想了解那么多后台底层的事情的。

数据库中数据的平滑顺接也是个问题。这次改变了数据库结构,只好在每次登入数据的时候都检查下数据库结构是否是最新的,也算是升级的一种代价吧。