近段时间优化Akina主题的评论框,想着添加一个UA信息的功能,见到过不少博客的留言板都有了类似设计,上网搜到了一份Show UserAgent插件的本地化代码,根据需求又精简了一下,效果如下,喜欢的小伙伴可以参考🐷。
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。
- 下载,解压后将得到的 show-useragent 文件夹一并上传到正在用的 WordPress 主题目录;
- 编辑 WordPress 主题目录下的 functions.php,在第一个之前添加引用语句:
include("show-useragent/show-useragent.php"); //显示访客信息
- 在评论框回调函数
callback=xxxxx
(通常在 functions.php里)中需要显示 UA 信息的位置插入如下代码:
<?php CID_print_comment_flag();?> //显示国别
<?php CID_print_comment_browser();?> //显示Browser+OS
参考 & 感谢
[1] Show UserAgent纯代码轻度汉化版
[2] WordPress显示评论者IP的归属地及运营商信息的2种方案
你这啥主机,不翻墙还进不来的。累坏了我这中年大叔~
@九歌 我用的Vultr的新加坡服务器,正常国内访问应该没问题,下午晚上高峰时段国内对新加坡网络出口速度有点慢。等有空了上一个国内的CDN,之后访问会更快一点
@九歌 你的博客挺有趣的诶,加一波友链吗
你的UA识别有BUG
@Mashiro emmm,这个标识有点高贵
我明天调一调,多谢多谢 
@Phower 你这啥主机,不翻墙还进不来的。累坏了我这中年大叔~
@Mashiro bug修复了,字符串匹配问题,现在放心来折腾
移动端的header改得很棒哦