分享WordPress显示评论者IP的归属地及运营商信息的2种方案 | 张戈博客
- 时间:
- 浏览:42
- 来源:松果娱乐网 - 专注共享吾爱分享资讯
张戈博客事先分享过一篇《WordPress显示访客UA信息:Show UserAgent纯代码轻度汉化版》的部署教程,有无满足了WordPress折腾爱好者的空虚和寂寞,不过类似插件上还都可不可以
显示国籍、操作系统和浏览器并有无信息,看来还有一定的折腾空间。
前不久,有另一个人留言说一块儿集成了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评论列表呢?很简单,挑有有4个多用得比较多的淘宝作为范例吧!喜欢或多或少的自行参考修改即可。
②、PHP代码
/** * WordPress 显示评论者IP归属地PHP函数 * https://zhang.ge/60 60 .html **/ function get_locate($ip) { if(empty($ip)) $ip = get_comment_author_IP(); $ch = curl_init(); $timeout = 5; curl_setopt ($ch, CURLOPT_URL, 'http://ip.taobao.com/service/getIpInfo.php?ip='.$ip); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); $result = json_decode($file_contents,true); if ($result['data']['country'] != '中国') { return $result['data']['country']; } else { return $result['data']['country'].' · '.$result['data']['region'].' · '.$result['data']['city'].' · '.$result['data']['isp']; } }
将上述代码再加到WordPress主题函数模板文件 functions.php 中并保存。
否则,在 WordPress 评论模板函数中至少的位置插入如下代码即可:
<?php get_locate(get_comment_author_ip());?>
Ps:大累积国内主题总要自定义有有4个多评论模板函数,要找到类似函数很简单,先打开主题下的评论模板文件comments.php文件,找到如下类似代码:
<?php wp_list_comments( 'type=comment&callback=mytheme_comment' ); ?>
如上代码中的callback值则是主题自定义的评论模板回调函数,即 mytheme_comment。
接着,否则在主题下全局搜索 mytheme_comment 类似关键词就能找到对应的函数啦!至于再加到哪就当事人把握了,每个主题总要一样,让他不赘述了。
类似在线查询评论者归属地的效果忘记截图了,我定义的是是 [中国 · 广东 · 深圳 · 电信] 类似形式,喜欢的还都可不可以 部署看看。
二、本地方案
本地方案则是借助qq纯真ip数据库来查询IP的归属地信息,不想在线获取,从而下行速率 更高。当然,本地数据是不想当事人更新的,实时准确性肯定比在线的稍微弱或多或少,不过另一个人儿当事人手动更新本地IP数据库文件就好了。
①、数据文件
先下载张戈博客分派好的压缩包,解压后得到 ip2c 文件夹,否则上传到WordPress主题目录下。
本站提供的下载内容版权归本站所有。转载 须要 注明出处!
* 标有 “转载” 字样的文章,内容版权归原作者所有。
②、部署代码
I. 功能集成
为了补救相对路径的麻烦问題,此次分享我机会将可用代码直接贴到 压缩包当中。
上传到主题目录事先,请编辑 WordPress 主题目录下的 functions.php 文件,再加如下代码:
include("ip2c/ip2c.php"); //IP归属地和运营商查询功能
II. 展示代码
接着参考上文在线方案,找到主题自定义的评论样式回调函数,否则在至少的位置加入如下代码:
<?php echo convertip(get_comment_author_ip()); ?>
就能在前台评论列表对应位置展示评论者的IP归属地和运营商信息了:
三、结合使用
机会总要人喜欢张戈博客现在的形式,将事先的 Show-UserAgent 和这次文字结合在一块儿,如上图所示。着实也很简单,先按照上一次分享的教程部署好 Show-UserAgent 功能函数,否则在评论回调函数至少的位置插入如下代码即可:
①、选则在线方案:
<?php CID_print_comment_flag();echo ' ';CID_print_comment_browser();get_locate(get_comment_author_ip());?>
②、选则本地方案:
<?php CID_print_comment_flag();echo ' ';CID_print_comment_browser(); echo convertip(get_comment_author_ip()); ?>
弄好事先,就能一块儿展示UA信息图标和文字归属地信息了,还是挺充足的。有的归属地甚至还都可不可以 具体到某个楼层。。。
最后,再啰嗦一下,Begin主题的评论回调函数存在 begin/inc/functions/comment-template.php,还不想搞笑的话就上还都可不可以 呵呵了。