WordPress显示评论者IP、归属地及运营商信息解决方法
发布:smiling 来源: PHP粉丝网 添加日期:2015-10-15 15:21:18 浏览: 评论:0
本文我们分享一个 WordPress 利用在张API显示 评论者IP、归属地及运营商信息的功能实现代码,api有很多,本文以淘宝的举例。
①、在线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 显示评论者IP归属地PHP函数
- **/
- function get_locate($ip) {
- if(emptyempty($ip)) $ip = get_comment_author_IP();
- $ch = curl_init();
- $timeout = 5;
- <a href="/tags.php/curl_setopt/" target="_blank">curl_setopt</a> ($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 显示评论者IP归属地PHP函数
- **/
- function get_locate($ip) {
- if(emptyempty($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 { //phpfensi.com
- return $result['data']['country'].' · '.$result['data']['region'].' · '.$result['data']['city'].' · '.$result['data']['isp'];
- }
- }
将上述代码添加到WordPress主题函数模板文件 functions.php 中并保存,然后,在 WordPress 评论模板函数中合适的位置插入如下代码即可:
<?php get_locate(get_comment_author_ip());?>
<?php get_locate(get_comment_author_ip());?>
Ps:大部分国内主题都会自定义一个评论模板函数,要找到这个函数很简单,先打开主题下的评论模板文件comments.php文件,找到如下类似代码:
<?php wp_list_comments( 'type=comment&callback=mytheme_comment' ); ?>
<?php wp_list_comments( 'type=comment&callback=mytheme_comment' ); ?>
如上代码中的callback值则是主题自定义的评论模板回调函数,即 mytheme_comment.
接着,只要在主题下全局搜索 mytheme_comment 这个关键词就能找到对应的函数啦,至于添加到哪就自己把握了,每个主题都不一样,我就不赘述了.
这个在线查询评论者归属地的效果忘记截图了,我定义的是是 [中国 · 广东 · 深圳 · 电信] 这种形式,喜欢的可以部署看看.
Tags: WordPress评论者 WordPress运营商
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)