近段时间优化Akina主题的评论框,想着添加一个UA信息的功能,见到过不少博客的留言板都有了类似设计,上网搜到了一份Show UserAgent插件的本地化代码,根据需求又精简了一下,效果如下,喜欢的小伙伴可以参考🐷。

180226-1-1.md.png

User Agent

User Agent,简称 UA,首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。

WordPress里面在用户访问网页或者提交评论时,其UA信息会自动记录在相应的数据库中,因此我们只要对这部分字符串稍作处理就可以得到我们想显示的UA信息。

在评论框中,我们希望可以显示以下这些信息:

  • 浏览器类型:名称+版本
  • 操作系统:Win?Mac OS?Linux?+版本
  • IP归属地

其中,浏览器类型和操作系统类型可以通过WordPress内置的comment_agent获取,而IP信息则通过get_comment_author_IP()函数来获取。

显示IP归属地及运营商信息大概有两种方法:一、在线 API,二、借助本地IP数据库,比较好的有qq 纯真 ip 数据库。在线获取主要问题是有时候 API 出现问题导致无法查询,本地化后则没有这种担心,但本地 IP 数据库准确性相对较差,需要经常更新。如果说对比两种方法的加载速度其实不会相差特别悬殊。

Show UserAgent

Show UserAgent 原本是 WordPress 的插件,后来经@张戈汉化精简后得到了现在的本地汉化版代码,无需插件,满足了博主这样的无插件强迫症患者😏。

以下版本经过博主再次精简优化,更新如下:

  • 移除几个多余函数,调整代码逻辑简化参数传递次数。
  • 移除大量早期浏览器,操作系统检索语句,统一归类到其他OS。
  • 移除大量pda移动端分类代码。
  • 移除本地浏览器图标包。
  • 添加Font Awesome图标,添加ua-style.css样式表。

整体精简了约50%代码,附上原版和精简版代码,爱捣鼓的朋友可以再折腾折腾😃。
【精简版(By:Phower)+原版(By:张戈)+IP纯真库】
👉👉戳我..戳我..链接: https://pan.baidu.com/s/1dFPTQpj 密码: ra3q

食用方法

精简版 IP 归属地只精确到国别,无具体运营商信息,如有需要可参考[1]使用IP 本地库或调用一些在线API。

  1. 下载,解压后将得到的 show-useragent 文件夹一并上传到正在用的 WordPress 主题目录;
  2. 编辑 WordPress 主题目录下的 functions.php,在第一个之前添加引用语句:
    include("show-useragent/show-useragent.php"); //显示访客信息
  3. 在评论框回调函数callback=xxxxx(通常在 functions.php里)中需要显示 UA 信息的位置插入如下代码:
    <?php CID_print_comment_flag();?> //显示国别
    <?php CID_print_comment_browser();?> //显示Browser+OS

参考 & 感谢

[1] Show UserAgent纯代码轻度汉化版
[2] WordPress显示评论者IP的归属地及运营商信息的2种方案