Catalog
本地化WordPress评论框UA信息显示

本文创建于 770 天前,更新于 36 天前,某些信息可能已经过时

2020-03-01 Update: 本地 IP 库更新方法

  • 进入IP to Country Database (IPV4 and IPV6),下载CSV格式的IP地址库 解压后得到 IpToCountry.csv 文件
  • 安装 JAVA (转换要用到 JAVA 程序)
  • 下载转换软件 ip2c:百度
  • 解压后把第一步得到的 IpToCountry.csv 文件复制到 ip2c 软件目录中与 转换.bat 文件同目录
  • 运行 转换.bat 后在同目录中得到 ip-to-country.bin 文件
  • 替换原同名文件

近段时间优化 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图标,添加对应的样式表

整体精简了约 50% 代码,附上原版和精简版代码,爱捣鼓的朋友可以再折腾折腾😃。

Github - PhosphorW/showUA
【精简版(By:Phower)+ 原版(By:张戈)+ IP 纯真库】 百度网盘: ra3q

使用方法

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

  1. 下载,解压后将得到的 show-useragent 文件夹一并上传到正在用的 WordPress 主题目录;
  2. 编辑主题目录下的 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

Demo

参考 & 感谢

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

Author: Phower
Link: https://phower.me/2018/02/本地化WordPress评论框UA信息显示/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • WeChat
    WeChat
  • AliPay
    AliPay
Comment