分享WordPress显示评论者IP的归属地及运营商信息的2种方案

张戈博客之前分享过一篇《WordPress显示访客UA信息:Show UserAgent纯代码轻度汉化版》的部署教程,算是满足了WordPress折腾爱好者的空虚和寂寞,不过这个插件只能显示国籍、操作系统和浏览器三种信息,看来还有一定的折腾空间。分享WordPress显示评论者IP的归属地及运营商信息的2种方案

前不久,有朋友留言说同时集成了Show UserAgent和IP归属地的文字信息。看了下还是挺不错的,连运营商都给肉出来了。

于是,张戈试着折腾了下,目前已经用了有一段时间了。测试了在线获取和本地数据2种方案,都还不错!不过在线获取方式,若是没有做静态化可能会稍微拖慢加载速度。

下面开始分享。

一、在线方案

①、在线API

在线查询IP信息的API有很多,比如淘宝、百度和新浪都有IP信息查询的API接口,地址如下:

百度:http://apistore.baidu.com/microservice/iplookup?ip=114.114.114.114

淘宝:http://ip.taobao.com/service/getIpInfo.php?ip=114.114.114.114

新浪:http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=114.114.114.114

请求方式都是GET,返回都是json格式。

如何将这个东东应用到WordPress评论列表呢?很简单,挑一个用得比较多的淘宝作为范例吧!喜欢其他的自行参考修改即可。

②、PHP代码

将上述代码添加到WordPress主题函数模板文件 functions.php 中并保存。

然后,在 WordPress 评论模板函数中合适的位置插入如下代码即可:

Ps:大部分国内主题都会自定义一个评论模板函数,要找到这个函数很简单,先打开主题下的评论模板文件comments.php文件,找到如下类似代码:

如上代码中的callback值则是主题自定义的评论模板回调函数,即 mytheme_comment。

接着,只要在主题下全局搜索 mytheme_comment 这个关键词就能找到对应的函数啦!至于添加到哪就自己把握了,每个主题都不一样,我就不赘述了。

这个在线查询评论者归属地的效果忘记截图了,我定义的是是 [中国 · 广东 · 深圳 · 电信] 这种形式,喜欢的可以部署看看。

二、本地方案

本地方案则是借助qq纯真ip数据库来查询IP的归属地信息,无需在线获取,从而效率更高。当然,本地数据是不会自己更新的,实时准确性肯定比在线的稍微弱一点,不过我们自己手动更新本地IP数据库文件就好了。

①、数据文件

先下载张戈博客整理好的压缩包,解压后得到 ip2c 文件夹,然后上传到WordPress主题目录下。

②、部署代码

I. 功能集成

为了避免相对路径的麻烦问题,此次分享我已经将可用代码直接放到压缩包当中。

上传到主题目录之后,请编辑 WordPress 主题目录下的 functions.php 文件,添加如下代码:

II. 展示代码

接着参考上文在线方案,找到主题自定义的评论样式回调函数,然后在合适的位置加入如下代码:

就能在前台评论列表对应位置展示评论者的IP归属地和运营商信息了:

分享WordPress显示评论者IP的归属地及运营商信息的2种方案

三、结合使用

可能也有人喜欢张戈博客现在的形式,将之前的 Show-UserAgent 和这次文字结合在一起,如上图所示。其实也很简单,先按照上一次分享的教程部署好 Show-UserAgent 功能函数,然后在评论回调函数合适的位置插入如下代码即可:

①、选择在线方案:

②、选择本地方案:

弄好之后,就能同时展示UA信息图标和文字归属地信息了,还是挺丰富的。有的归属地甚至可以具体到某个楼层。。。

最后,再啰嗦一下,Begin主题的评论回调函数位于 begin/inc/functions/comment-template.php,还不会的话就只能呵呵了。

文件下载

博客小广告:网络加速服务推荐(点击图片查看)

网络加速

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:34   其中:访客  33   博主  1

  1. boke112导航 5 来自天朝的朋友 谷歌浏览器 Windows 7 广西柳州市 电信

    看起来很不错,不过这个功能应该不是很多人喜欢,我还是比较喜欢简洁的

  2. god 4 来自天朝的朋友 谷歌浏览器 Windows XP 陕西省西安市 电信

    正准备添加这个功能呀,才再看你以前的帖子。就已经发了 ,给力!

  3. 免费福利 5 来自天朝的朋友 谷歌浏览器 Windows 7 湖北省武汉市 电信

    感谢分享 可惜在用多说

  4. SOLDIER 0 来自天朝的朋友 谷歌浏览器 Windows 7 上海市黄浦区 /卢湾区电信

    这个可以有,谢谢博主了。

  5. 友邻阅读 3 来自天朝的朋友 谷歌浏览器 Windows 7 江苏省苏州市 电信

    不错

  6. World 3 来自天朝的朋友 谷歌浏览器 Windows 10 广东省深圳市 电信

    get了
    谢谢大大分享 :grin:

  7. 企业短信服务平台 2 来自天朝的朋友 谷歌浏览器 Windows XP 河南省郑州市 联通

    看了学习了

  8. 上海seo 1 来自天朝的朋友 谷歌浏览器 Windows 7 上海市 电信

    学习啦。。。

  9. 小幻 5 来自天朝的朋友 火狐浏览器 Windows 10 北京市 创新为营网络通信科技有限公司

    还是纯真的IP好点

  10. 胡歌网摘 4 来自天朝的朋友 谷歌浏览器 Windows 7 广东省汕尾市 联通

    本地方案很ok

  11. 网上兼职 0 来自天朝的朋友 谷歌浏览器 Windows 7 北京市 北龙中网

    最近见到有几个博客在用这种东西

  12. 嗯哌 1 来自天朝的朋友 谷歌浏览器 Windows 7 上海市 联通漕河泾IDC机房

    技术真是越深入了解越有意思,就想陈年的酒一样,了解的越深,你获得的惊喜也就越多!

  13. 珠海影视制作 0 来自天朝的朋友 谷歌浏览器 Windows 7 河南省郑州市 电信

    博主不错啊,一直坚持着更新!

  14. 微商货源吧 5 来自天朝的朋友 搜狗浏览器 Windows 7 重庆市万州区 电信

    习惯了多说了

  15. 替替 1 来自天朝的朋友 谷歌浏览器 Windows 10 北京市 教育信息网

    又学了一招,经常来博主这里看到新技术。感谢 :grin:
    签到成功!签到时间:下午12:33:00,每日签到,生活更精彩哦~

  16. ae 1 来自天朝的朋友 谷歌浏览器 Windows 8.1 福建省福州市 电信

    测试评论效果

  17. 求教 0 来自天朝的朋友 谷歌浏览器 Windows 7 江西省抚州市 联通

    我的无法更改,找不到地方调用进去,请看看怎么回事,添加之后是这样!

  18. 曾祥博自媒体 1 来自天朝的朋友 谷歌浏览器 Windows 10 山东省菏泽市 联通

    都是签到成功!签到时间:下午11:01:27,每日签到,生活更精彩哦~

  19. Licoy 4 来自天朝的朋友 火狐浏览器 Windows 10 浙江省台州市 联通

    博主 这个添加上然后网站直接什么都没有了….怎么回事。使用的是云落基于欲思二次开发的Git主题

  20. PolarBear 1 来自天朝的朋友 谷歌浏览器 Windows 10 黑龙江省绥化市 联通

    本地方案可以,在线方案,不可以呢

  21. 点思博客 0 来自天朝的朋友 QQ浏览器 Windows XP 山东省青岛市 联通

    看到信息过来学习一下

  22. 九妹 1 来自天朝的朋友 谷歌浏览器 Windows XP 广东省惠州市 电信

    后台所有评论都是同一个IP,显示为:172.29.7.248 然后前台显示:局域网 对方和您在同一内部网。用网上的方法(百度,sogou)没有解决。这个要如何解决呢?

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

      在wp-config.php里插入如下代码:

      • 九妹 1 来自天朝的朋友 谷歌浏览器 Windows XP 广东省惠州市 电信

        谢谢你的回复,用的360的cdn 。这种方法有试过。还是同样的问题:局域网 对方和您在同一内部网 后台还是同一个IP

  23. 如意桃花心有愿 0 来自天朝的朋友 谷歌浏览器 Windows 7 河北省廊坊市 电信

    张哥,求教个问题:我想把自己(管理员)的ip设置成127.0.0.1,于是我将你前一篇文章的相关代码改成下面这样了:
    判断评论者的id值是否为 1,如果是 1,说明是管理员,那么$ip就设定为 127.0.0.1,否则(不是管理员)就返回真实的ip地址。
    你看看下面的代码是否有问题?因为结果并不能如自己所愿:

  24. 堆爱 3 来自天朝的朋友 QQ浏览器 Windows 10 贵州省贵阳市 电信

    那么问题来了。使用了云加速后获取的IP都是云加速节点的IP了。

  25. 山野愚人居 1 Tajikistan 火狐浏览器 Windows 7 塔吉克斯坦

    有的主题没有comments.php文件,在文章页面文件中只调用了comments_template()函数,这个文章下的评论模板列表要去哪儿找?

  26. 安静 1 来自天朝的朋友 谷歌浏览器 Windows 7 湖北省黄冈市 电信

    你好 怎么我在一个站做个。显示的时候 浏览器图标显示不出来呢?

  27. 诗梦 0 来自天朝的朋友 谷歌浏览器 Linux 广东省韶关市 移动

    可怜,3个接口都不支持https://,本地文件又太大?????

  28. 李洋博客 2 来自天朝的朋友 搜狗浏览器 Windows 7 辽宁省沈阳市 电信

    打扰,问下,Z-blogPHP能不能实现呢?

  29. 米扑 3 来自天朝的朋友 谷歌浏览器 Mac OS X 10_12_6 北京市 电信

    很赞的功能,米扑博客收走了,站在巨人的肩上又前进了一部
    实践中,合并了你的显示IP国家和归属地,有需要的朋友可以参考米扑博客:
    米扑博客:总结分享 WordPress显示评论者IP归属地、浏览器、终端设备、电信运营商

  30. 米扑 3 来自天朝的朋友 谷歌浏览器 Mac OS X 10_12_6 北京市 电信

    很赞的功能,米扑博客拿走了,感谢!

  31. 黑色网魂 2 来自天朝的朋友 谷歌浏览器 Windows 7 宁夏 电信

    恩,正好需要啊 ,棒棒哒。你的评论框指上才显示,这个是怎么实现的,发过文章吗

加载中,请稍候...