本文我們分享一個 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 { //Vevb.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 這個關鍵詞就能找到對應的函數啦,至于添加到哪就自己把握了,每個主題都不一樣,我就不贅述了.
這個在線查詢評論者歸屬地的效果忘記截圖了,我定義的是是 [中國 · 廣東 · 深圳 · 電信] 這種形式,喜歡的可以部署看看.
新聞熱點
疑難解答
圖片精選