基于wpDiscuz评论系统的用户IP归属地功能实现
前言
随着《互联网用户账号信息管理规定》的发布,各大热门网站包括软件、游戏方面也开始显示IP属地了。笔者这个站点当然不能落下啦,遵守国家法律法规的要求。于是就想着记录一下实现方法为站点后期维护提供记录。
实现方法
该功能参考的评论区显示用户IP归属地 - 广然笔记 (rsecc.cn)
参考广然站长的代码,笔者做了如下更改,用在了本站。
获取归属地
前面的步骤不变,构建用于获取归属地的get_user_address.php文件 ,将get_user_address.php放入主题下的根目录并将其引入主题的function.php中,这块按照广然的设置即可。
get_user_address.php文件 如下:
<?php
function province($user_ip)
{
if(!filter_var($user_ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6))
{
//高德API
$url = "https://restapi.amap.com/v3/ip?key=【此处填写API Key】&ip=".$user_ip;
$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, '');
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($curl);
$data = json_decode($data, true);
$province = isset($data['province']) ? $data['province'] : "未知属地";
return $province;
}
else
{
$province = "因为穷,IPv6访客暂不支持显示归属地";
return $province;
}
}
?>
wpDiscuz修改
本站的评论系统用的wpDiscuz,需要在wpDiscuz文件夹下找到 评论相关的函数。我的想法是在日期的后面加上IP归属地,于是找到-themes/default/class.WpdiscuzWalker.php文件下start_el函数主要用来生成评论的布局的,在该函数下找到wpd-comment-date。
将下面这段代码
$replace[] = ($this->options->general["simpleCommentDate"]) ? esc_html($commentDate) : esc_html($this->helper->dateDiff($comment->comment_date_gmt));
替换为
/*$replace[] = ($this->options->general["simpleCommentDate"]) ? esc_html($commentDate) : esc_html($this->helper->dateDiff($comment->comment_date_gmt));*/
$replace[] = ($this->options->general["simpleCommentDate"]) ? esc_html($commentDate) : esc_html($this->helper->dateDiff($comment->comment_date_gmt))."·<a style=''>来自".province(get_comment_author_ip())."</a>";//显示的日期
按照如上操作我们的归属地功能就完成了,最终效果:
作者:Miracle
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/blog_construction/1600/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/blog_construction/1600/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
0
打赏
海报
基于wpDiscuz评论系统的用户IP归属地功能实现
前言
随着《互联网用户账号信息管理规定》的发布,各大热门网站包括软件、游戏方面也开始显示IP属地了。笔者这个站点当然不能落下啦,遵守国家法律法规的要求……
文章目录
关闭