WordPress后台评论功能会记录每一位访客IP地址,但是如果我们希望获取访客IP的具体归属地,虽然可以通过第三方IP查询工具手动输入IP查询,但是这样略显不便,于是小z博客利用淘宝IP接口对WordPress后台进行了略微的改动,使其可以一键查询访客IP的归属地。
一、引入Jquery库,并加载javascript函数
由于查询的时候使用的Jquery Ajax Get方式提交,需要依赖Jquery的支持,但是似乎wordpress后台没有引入Jquery库,没关系我们手动引入即可,修改/wp-admin/admin-footer.php
这个PHP文件在最后body之前引入jquery文件,并加载相关函数。
二、添加ip-query接口查询文件
将下面的代码另存为ip-query.php
并上传到/wp-admin/目录下,待会儿查询IP需要使用此接口。
三、修改wordpress后台功能
找到wp-admin/includes/class-wp-comments-list-table.php
文件,使用文本工具打开并搜索关键词:get_comment_author_IP,然后
printf( '%s', esc_url( $author_ip_url ), $author_ip );
找到这一行代码之后添加以下代码:
$num = 'abc'.rand(1000,9999);
echo " | 查询";
echo "";
最后保存并覆盖源文件,注意编码格式为UTF-8,否则会乱码,修改前请将源文件做备份。
四、查看效果
最后打开wordpress后台评论,会多出一个查询按钮的功能,点击一下查询按钮,就可以显示访客IP归属地啦,就是这么简单,若有不会的可以留言咨询。
五、总结
需要注意的几个地方就是wp-admin目录下的文件比较多,别修改错了,再次强调修改前务必备份源文件,这个方法的不足之处就是wordpress后台升级后可能被覆盖,有空的时候可以考虑写成插件方式。
小白没看明白,怎么获取IP
开了CDN,访客评论的IP地址都是CDN的节点地址,这个怎么解决呢?
网上搜索有很多教程,比如:WordPress使用CDN后无法获取真实IP解决方法
想知道WordPress 的获取用户的IP地址函数是那个 ==
额,我也不知道。
修改源码不推荐
很不错,谢谢分享
直接输出到评论怎么样?
可以实现,到时候我再修改下代码。为了避免查询IP的时候影响加载速度,估计还是得用Ajax
这个看起来蛮不错的、比直接查询方便很多
看起来不错
你俩的域名好像。。。
是的,只差一个字母。
请问下您博客分享按钮用的哪个呀?好多分享不支持https
已经发给你了,QQ
当我窗口离开您的网页title变成了1024,当我移动回去titie正常?
嗯,分享用的是开源的sharejs,title那是是的