WordPress显示评论者IP归属地、浏览器、终端设备、电信运营商
在网上查资料闲逛,偶然间看到了张戈博客的评论框有点意思,于是就收走拿到了我的米扑博客。
本文为米扑博客原创:总结分享 WordPress显示评论者IP归属地、浏览器、终端设备、电信运营商
WordPress显示评论者IP归属地、浏览器、终端设备、电信运营商,如下图:

米扑博客评论演示效果: https://blog.mimvp.com/donate/#comments
恩,本来搞定了不打算写博客的,但是想了想原文步骤繁琐,有些细节还没有,都是自己一点一点捣鼓出来的,很多朋友可能用得到,所以还是总结分享写出来
张戈博客,WordPress显示访客UA信息,共分了两篇博客:
WordPress显示访客UA信息:Show UserAgent纯代码轻度汉化版
分享WordPress显示评论者IP的归属地及运营商信息的2种方案
本文,将合并两篇博客的内容,主要合并了两个脚本,并对国旗、浏览器、终端设备等图标进行了美化
插件实现
1)Show UserAgent 插件 (推荐)
官网: https://wordpress.org/plugins/show-useragent/
效果图如下:

2)WP-UserAgent 插件 (适合老外)
官网:https://wordpress.org/plugins/wp-useragent/
下载: wp-useragent.zip
效果图如下:

代码实现
到这里,请注意,全部是重点,按步骤做就好了
1. 下载zip包
米扑博客整理了图标和文字两种显示方式,命名为加强版zip包
Show UserAgent 加强版: show-useragent-pro.zip
2. 上传到主题根目录
把 show-useragent-pro.zip 上传到主题的根目录,注意不是WordPress根目录
例如,米扑博客使用的主题是 officefolders ,则zip包上传至 wp-content/themes/officefolders/ 目录下
上传后,解压zip包:
unzip show-useragent-pro.zip
解压后的文件列表如下:
# tree show-useragent -L 1
show-useragent
├── browsers
├── flags
├── ip2c
├── ip2c-qqwry.dat
├── ip2c-text.php
└── show-useragent.php
3. 添加代码到 functions.php
vim functions.php
在 php 作用域内,添加两行代码:
include("show-useragent/show-useragent.php"); // 显示访客信息
include("show-useragent/ip2c-text.php"); // IP归属地和运营商查询功能
4. 添加代码到 xxx-comment.php 模板
这里,我们需要在评论者用户后面,添加显示IP归属地、浏览器图标等信息,因此需要找到评论者的位置,查找方法如下:
1)打开有评论的网页,按 F12(Mac用户组合键 option + command + i )进入开发者模式,定位到评论者,例如:阳光岛主

2)搜索定位的关键词
在WordPress根目录下,搜索定位到的关键词,如上图中的 "comment-author vcard" ,找到对应的评论模板文件
一般模板文件在 wp-include/ 目录下,所以搜索命令为:
# grep "comment-author vcard" wp-includes/ -r | grep -vE ".svn|.git"
wp-includes/class-walker-comment.php: <div class="comment-author vcard">
wp-includes/class-walker-comment.php: <div class="comment-author vcard">
3)修改评论模板文件
打开步骤2)找到的评论模板文件
vim wp-includes/class-walker-comment.php
再次搜索关键词 "comment-author vcard",定位到在文件中的具体位置,添加代码如下:
<span id="comment_ua_info" class="comment_ua_info" style="white-space: nowrap;overflow: hidden;display:none;">
<?php echo ' '; CID_print_comment_flag(); echo ' '; CID_print_comment_browser(); ?>
<?php echo "<span id='ua-info-text' style='font-size:14px;font-weight:normal;color:#aaa;'>"; echo convertip(get_comment_author_ip()); echo "</span>"; ?>
</span>
添加后的效果:

简单解释:
<span id="comment_ua_info" ... > 包含IP归属地、浏览器,以及文本信息等,目的是为后面鼠标悬浮显示时使用,js实现显示和隐藏效果
CID_print_comment_flag() 显示IP归属地的国旗
CID_print_comment_browser() 显示浏览器和用户设备
convertip(get_comment_author_ip()) 显示IP归属地的文本信息
至此,显示评论者信息已经实现了
如果想看效果,先把 id="comment_ua_info" 中的样式 display:none; 去掉,就可以看到效果了

5. 添加代码到 footer.php
初看步骤4的效果还不错,但是看上去信息会很多,颜色等有点乱,于是想追求极致,还需要继续努力
为了实现鼠标悬浮在评论框才显示的效果,我们需要结合js实现,添加js代码到主题下的footer.php中
vim footer.php
添加js代码
<!-- comment ua-info -->
<script>
jQuery('.comment-body').hover(
function(){
jQuery(this).find('span.comment_ua_info').show();
},
function(){
jQuery(this).find('span.comment_ua_info').hide();
});
jQuery('.comment-body').click(
function(){
jQuery(this).find('span.comment_ua_info').show();
});
</script>
说明:
1)jQuery('.comment-body').hover 悬浮事件,主要用于PC电脑端,但是手机端没有悬浮事件
2)jQuery('.comment-body').click 点击事件,主要用于手机端,点击可以显示,但需要注意click事件里不要加hide,否则在电脑端与hover相冲突
3)span.comment_ua_info 标签,是在步骤4中特别说明的,记得要把 id="comment_ua_info" 中的样式设置为 display:none; 默认不显示ua-info信息
至此,评论者IP归属地等信息默认是隐藏了,只有当鼠标悬浮在评论框时才会显示出来
演示效果,请见米扑博客:https://blog.mimvp.com/donate/#comments

6. 按钮显示评论所有IP
上面的功能,在一些博客里都已实现,我的米扑博客只是把人家的效果,用代码实现分享出来
最后,奉献一点小创新,个人感觉还是比较实用的,就是添加一个按钮,能够一键显示所有IP
恩,你说的对,步骤4早已经实现了,折腾出步骤5的隐藏IP,现在步骤6又整出一键显示所有IP,闲的蛋疼,哈
恩,蛋疼也好,折腾也罢,也要搞出来,微创新嘛,直接上代码和步骤啦
1) 修改评论文件 comments.php
进入主题目录,修改评论文件 comments.php
vim comments.php
添加一行用于显示的按钮(按钮放哪儿,由你自己决定了)
<span id="comment_show_ip" class="comment_show_ip" style="color:blue; font-size:14px;">显示评论IP</span>
2) 添加js代码到 footer.php
进入主题目录,修改页脚文件 footer.php
vim footer.php
添加js代码如下:
<script>
jQuery(".comment_show_ip").click(function(){
if(jQuery(".comment_show_ip").text() == "显示评论IP") {
jQuery(".comment_ua_info").show();
jQuery(".comment_show_ip").html("隐藏评论IP");
}
else {
jQuery(".comment_ua_info").hide();
jQuery(".comment_show_ip").html("显示评论IP");
}
});
</script>
3)检阅成果
a)点击“显示评论IP”,则显示全部评论IP,并把按钮置为“隐藏评论IP”,如下图

b)点击“隐藏评论IP”,则隐藏全部评论IP,并把按钮置为“显示评论IP”,如下图

好了,折腾完了,到底蛋闲不闲疼不疼,看看米扑博客的效果再说吧
WordPress显示评论者IP归属地、浏览器、终端设备、电信运营商的更多相关文章
- [转]用Whois获得电信运营商的IP地址是如何分配的?
[转]用Whois获得电信运营商的IP地址是如何分配的? Linux下获得一些中国电信运营商的IP地址分配情况: APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信 ...
- BGP多线 有些BGP IP也会被极少数运营商劫持 取Ip逻辑
小结: 1.租用的服务器只有一个IP,用户的访问路线是由路由器根据访客的实际访问速度选择最优访问路径,来选择访问的.而且不占用任何的服务器资源.服务器的上行和下行都是有路由器来选择最佳的路线,所以这样 ...
- 100.64.0.0/10运营商级(Carrier-grade)NAT保留IP地址
在一次跟踪路由的网络操作时发现自己路由器下一跳路由节点的IP地址比较奇怪,是100.64.0.1.好奇促使我查询了这个IP地址的归属,结果是保留地址,到这里觉得比较奇怪了,按照常理以IPv4为例保留的 ...
- 国内各运营商(ISP)IP段表
国内各运营商(ISP)IP段表 来源:http://bbs.hh010.com/forum.php?mod=viewthread&tid=490529&orderby=dateline ...
- WordPress使用淘宝IP地址库的API显示评论者的位置信息(二)
1 淘宝IP地址库的接口说明 在上一篇文章<WordPress使用淘宝IP地址库的API显示评论者的位置信息(一)>中,vfhky使用了新浪工具提供的这个IP接口显示博客评论者的位置信息. ...
- 全网显示 IP 归属地,这背后的技术你知道吗?
为了进一步规范国内的网络舆论,国家规定了各互联网平台都需要显示 IP 归属地信息.微博.抖音.公众号等多个平台纷纷上线了 IP 归属地功能,这标志着国内言论的进一步规范化.但互联网平台商们是怎么通过 ...
- Sina 新浪Ip归属地Api 很好用的,使用get请求
前言 这几天做了一个客服管理系统,需要根据游客的Ip获取他的归属地,刚开始使用了,www.ip138.com 抓取ip归属地,用这还可以,但是不显示国家:于是是找了这个新浪的Api,很不错啊 用法 1 ...
- Linux shell查询ip归属地
起因 有的时候写脚本需要能够在脚本中获取到ip的归属地,比如分析登录日志列出攻击者的相关信息等. 可以使用whois来查询ip的详细信息,但是whois并不是每台机器预装的,而且我想看中文的结果,所以 ...
- Shell 命令行统计 apache 网站日志访问IP以及IP归属地
Shell 命令行统计 apache 网站日志访问IP以及IP归属地 我的一个站点用 apache 服务跑着,积攒了很多的日志.我想用 shell 看看有哪些人访问过我的站点,并且他来自哪里. 因为日 ...
随机推荐
- And Reachability CodeForces - 1169E (有向图可达性)
大意: 给定序列$a$, 对所有的a[i]&a[j]>0, 从$i$向$j$连一条有向边, 给出$m$个询问$(x,y)$, 求是否能从$x$到达$y$. 裸的有向图可达性, 有向图可达 ...
- JDBC 24homework
编写程序: 1. 创建商品信息表Goods(包含编号Code.名称Name.数量Number.单价Price) 2. 设计程序流程,由用户选择:插入.删除.修改.查询 程序效果如下: (1)根据提示输 ...
- RGB2GRAY 各种算法速度比较,整形乘法比查表法快!
1. 查表法,外循环用 这种格式 : //for(int j = 0; j != h; ++j)// for(int i = 0; i!=w;++i)//. for(int j = 0; j != ...
- 3.移动端自动化测试-appium环境搭建(原理)
appium自动化原理: 需要服务端(appium启动),手机端(adb连接设备),脚本端(pycharm)就可以进行 自己总结下: 手机和脚本连接:1.adb连接,2靠脚本导入驱动. 脚本和服务端连 ...
- Delphi GetCommModemStatus函数
- greenlet、gevent:历史悠久的用于处理并发的模块
greenlet介绍 greenlet是用C语言编写的一个模块,然后让python调用,目的就是为了让python支持协程. A "greenlet" is a small ind ...
- RHEL7 网口绑定Network Teaming
1.选择Networking Teaming配置方法 使用文本用户界面工具nmtui 使用命令行工具nmcli 使用ifcfg配置文件创建网络成组 使用图形用户界面配置网络成组 2.了解主接口 ...
- MySQL之concat、concat_ws、group_concat
concat(str1, str2, ...) 返回结果为连接一起的字符串. concat_ws(separator, str1, str2, ...) 同concat,但是可以指定连接符,sepa ...
- insightface数据裁剪过程
数据裁剪 我们用lfw数据做实验,你也可以自己找数据. lfw数据 http://vis-www.cs.umass.edu/lfw/ 我下载的是这个原图像https://drive.google.co ...
- linux中centos6.9环境下的python3.6和pip的安装
安装python3.6可能使用的依赖# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqli ...