本文最后更新于2022年7月10日,已超过 1 年没有更新,如果文章内容失效,请 反馈 给我们,谢谢!
免插件实现评论者显示UA信息和地理信息的方法
获取UA信息是在张戈博客看到的,另一个地理位置信息是在其它网站看到的经过合并整理自己修改了一下实现了本站森林之家的评论区的显示样式。
原理(个人见解)评论者的“国家”“浏览器”“操作系统”这三个图标是经过查找IP库来定位具体某个国家或、浏览器、操作系统,返回下载好的本地图标;地理位置信息比如:“中国江苏南京”这几个字是调用新浪网的IP库来实现的。
下面说下具体步骤:
首先把数据包下载下来放到主题的根目录
把主题目录下的“comments.php”打开搜索“wp_list_comments”如果搜索出来的那段内容中包含“callback=XXX’”(XXX代表任意字符)那么恭喜你,你的主题是自定义评论样式了的,可以继续下一步,如果没有就此打住自己开刀去吧。
然后在主题目录下的“functions.php”中查找上面的“XXX”或者在主题“comments.php”中,大多数都在“functions.php”中,在其后面某个适当的位置加入这行代码:“
<span class="crayon-ta"><?php</span> <span class="crayon-e">CID_print_comment_flag</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span> <span class="crayon-k ">echo</span> <span class="crayon-s">' '</span><span class="crayon-sy">;</span><span class="crayon-e">CID_print_comment_browser</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span> <span class="crayon-ta">?></span>
”
具体要在哪里加比如名称后面加完了回来刷新一下看看效果不行再换,说明一下如果在加入上面代码的时候提示包含语法错误的话就把“
<span class="crayon-ta"><?php</span>
”和“
<span class="crayon-ta">?></span>
”
去掉。
回来刷新看看效果吧。评论区是不是有访客的UA信息了呢,如果没有我就没办法了自行找方法吧,如果有就接着往下看。
访客UA信息加了以后如果觉得不足还可以加些访客地理信息方法如下:
把以下代码放到主题目录下的“functions.php”文件的开头的<?php后面:
#获取评论用户的真实IP归属地(www.foresthouse.cn) function getIPLoc_sina($ip1){ $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$ip1; $ch = curl_init($url); //curl_setopt($ch,CURLOPT_ENCODING ,'utf8'); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; $location = curl_exec($ch); $location = json_decode($location); curl_close($ch); $loc = ""; if($location===FALSE) return ""; if (empty($location->desc)) { $loc = $location->country.$location->province.$location->city; }else{ $loc = $location->desc; } return $loc; }
可以在“comments.php”调用
<?php echo getIPLoc_sina(get_comment_author_IP()); ?>
即可,如果不知道怎么调用,而且自己的主题是定义了评论样式的可以跟我一样就在主题目录中的“functions.php”的评论样式中,第一步调用UA信息的后面加入:
//访客地理位置 echo getIPLoc_sina(get_comment_author_IP());
也行。