这个有两个版本的教程,第一种比较常见,这里我两个都说一下
1、文件版
1.1、上传文件
然后上传到程序子比主题,wp-content/themes/zibll目录里面,然后直接解压。
![图片[1]-WordPress系统子比主题添加评论IP归属地[教程][插件]-樱花小镇](https://bu.dusays.com/2023/08/24/64e70f2e86110.webp)
然后复制这个show-useragent文件目录,然后粘贴到网站根目录。
1.2、修改functions.php
子比主题可以将代码放进func.php,这样更新主题的时候不会丢失
include("show-useragent/show-useragent.php"); // 显示访客信息
include("show-useragent/ip2c-text.php"); // IP归属地和运营商查询功能
1.3、修改zib-comments-list.php
其他主题可能是comment.php,子比主题文件在wp-content/themes/zibll/inc/functions里面
$ip = convertip(get_comment_author_ip());
return '<name class="flex ac flex1">' . $user_name . $badge .'<span class="badg badge badg-sm flex0 ml3">'.$ip.'</span>'.'</name>';
![图片[2]-WordPress系统子比主题添加评论IP归属地[教程][插件]-樱花小镇](https://bu.dusays.com/2023/08/24/64e70f42d81dc.webp)
$diqu = CID_get_comment_browser();
$diqu .= CID_print_comment_flag();
$time_html = '<span class="comt-author"' . ($is_mobile ? ' data-toggle="tooltip"' : '') . ' title="' . date('Y年m月d日 H:i:s', strtotime($comment->comment_date)) . '">' . zib_get_time_ago($comment->comment_date) . '</span>'.'<span class="comt-author" title="">'.$diqu.'</span>';
![图片[3]-WordPress系统子比主题添加评论IP归属地[教程][插件]-樱花小镇](https://bu.dusays.com/2023/08/24/64e70f6cec47b.webp)
然后刷新即可!
2、插件版
这是一个开源的插件,教程耶差不多!
2.1、上传插件
![图片[4]-WordPress系统子比主题添加评论IP归属地[教程][插件]-樱花小镇](https://bu.dusays.com/2023/08/24/64e70f832fe37.webp)
2.2、修改zib-comments-list.php
和文件版一样的位置
![图片[5]-WordPress系统子比主题添加评论IP归属地[教程][插件]-樱花小镇](https://bu.dusays.com/2023/08/24/64e70f93d3b8a.webp)
$ip_loction = easy_location_handle_comment($comment_text);
return '<name class="flex ac flex1">' . $user_name . $badge .'<span class="badg badge badg-sm flex0 ml3">'.$ip_loction.'</span>'.'</name>';
这就可以用了
2.3、扩展
![图片[6]-WordPress系统子比主题添加评论IP归属地[教程][插件]-樱花小镇](https://bu.dusays.com/2023/08/24/64e70fab92362.webp)
插件的第十一行define('SHOW_POST_LOCATION', false); 可以把false改成true,这样可以显示文章作者的IP归属地。
3、常见问题
3.1、Q:为什么我的网站评论IP好像不太准?
A:这个可能是因为使用了CDN等产品,需要在wp-config.php添加如下代码,即可解决!
//获取访客真实IP地址
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
};
直接添加在<?php下面
3.2、Q:我用的插件版怎么只显示省份,不显示城市呢?
A:在php文件里面找到第259行,有个[1],把1改成2即可,需要注意的是,改成2可能有部分评论不显示归属地了
可以改成这样:
if (!function_exists('get_user_city')) :
function get_user_city($ip)
{
$reader = new Reader(__DIR__ . '/ipipfree.ipdb');
try {
if($reader->find($ip)[2])
return $reader->find($ip) ? $reader->find($ip)[2] : false;
else
return $reader->find($ip) ? $reader->find($ip)[1] : false;
} catch (\Throwable $th) {
return false;
}
}
endif;
3.3、Q:插件版文章底部不显示了,只有“来自”两个字,怎么搞?
A:依然打开插件php文件,来到第318行,将一整行都换掉就欧克了,你要是找不到,直接搜索onlineip就行
update_post_meta($post_id, 'easy_location_ip', explode(',', $onlineip)[0]);

暂无评论内容