有时候,正是那些人们认为的无用之人成就了无人能成之事。Sometimes it’s the very people who no one imagines anything of who do the things no one can imagine.
——艾伦·麦席森·图灵
在线获取
PS:在线获取可能会拖慢页面的加载速度,所以建议使用下面的API接口
免费API接口
67IP查询接口:https://67ip.cn/check (超过3次日调用量大于1万的账户将停止接口调用权限)
后续将会专门在一篇文章中分享一系列的接口
请求方式为GET,返回是json格式。
/**
* json返回示例
{
"code":200,
"message":"success",
"data":{
"country":"中国",
"province":"辽宁",
"city":"鞍山",
"service":"联通"
}
}
**/
添加PHP代码
将下面的代码添加到主题的functions.php
文件中,并且做好注释,防止下次更改时遗忘
/**
* WordPress 显示评论者IP归属地PHP函数
* https://blog.eswlnk.com/326.html
**/
function get_locate($ip) {
if(empty($ip)) $ip = get_comment_author_IP();
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'https://67ip.cn/check?ip='.$ip.'&token=你的token');
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']['province'];
}
}
然后在comments.php
或comment.php
文件中添加以下函数调用
<?php echo get_locate(get_comment_author_ip());?>
具体的位置根据主题的评论位置而定,方便的话可以在comments.php
或comment.php
搜索以下代码
<?php wp_list_comments( 'type=comment&callback=mytheme_comment' ); ?>
callback
后的对应主题评论的回调函数,搜索到后跳转然后添加get_locate
函数即可
这里我只添加了评论者的省份,下面是评论后的示例图
![WordPress如何在评论栏添加评论者IP归属地插图 WordPress如何在评论栏添加评论者IP归属地插图](https://static.esw.eswlnk.com/2021/05/2021053009412759.png)
📮评论