加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 教程 > 正文

WordPress显示评论者IP归属地及运营商信息解决方案

发布时间:2022-06-23 19:47:10 所属栏目:教程 来源:互联网
导读:本文我们分享一个 WordPress 利用在张API显示 评论者IP、归属地及运营商信息的功能实现代码,api有很多,本文以淘宝的举例。 ①、在线API 在线查询IP信息的API有很多,比如淘宝,百度和新浪都有IP信息查询的API接口,地址如下: 百度:http://apistore.baidu.com/
  本文我们分享一个 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 这个关键词就能找到对应的函数啦,至于添加到哪就自己把握了,每个主题都不一样,我就不赘述了.
 
  这个在线查询评论者归属地的效果忘记截图了,我定义的是是 [中国 · 广东 · 深圳 · 电信] 这种形式,喜欢的可以部署看看.
 
 

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读