悠悠楠杉
网站页面
相信大部分做过网站的朋友都知道,Gravatar是一个全球性的头像设置平台,除中国以外大部分网站都是调用的此平台头像,但因为我们伟大的祖国有一般人射不穿的城墙(网友们都懂的๑乛◡乛๑),所以用这个头像平台的用户很少,导致大部分使用此头像平台的网站,评论区总会有很多Gravatar 官方头像。
找到主题下的comments.php
文件,查找关键字gravatar
我们会发现下面一段语句
<?php $comments->gravatar('40', ''); ?>
果断删掉$comments->gravatar('40', '');
,再去文章页刷新一看,头像果然消失了,这时我们再重新输出一个 img 标签就好了。
接下来搞定头像获取就好啦,去数据库看了看,存邮箱的字段名是 mail
,所以获取内容应该是$comments->mail;
,先 new 个变量获取下邮箱吧$number=$comments->mail;
。
接下来就好说了,把接口里的"QQ 号"改为"$number",然后 echo 一下就好喽。
<span itemprop="image"><?php $number=$comments->mail; echo '<img src="https://q2.qlogo.cn/headimg_dl? bs='.$number.'&dst_uin='.$number.'&dst_uin='.$number.'&;dst_uin='.$number.'&spec=100&url_enc=0&referer=bu_interface&term_type=PC" width="46px" height="46px" style="border-radius: 50%;float: left;margin-top: 0px;margin-right: 10px;margin-bottom:-2px">'; ?></span>
即用第二条语句把原来的<?php $comments->gravatar('40', ''); ?>
替换掉即可。
在通常情况下,当用户输入了QQ邮箱,我们的头像才会调用为QQ头像。但是假如用户使用的是163邮箱或者是其他邮箱,那么头像肯定会显示失败。那么该怎样解决这个问题呢?其实也很简单,我们放个if判断语句就行了。先判断输入的邮箱是不是QQ邮箱,如果是调用QQ邮箱,如果不是则调用Gravatar头像或者其他的静态头像,或者随机头像即可。
<?php
$number=$comments->mail;
if(preg_match('|^[1-9]\d{4,11}@qq\.com$|i',$number)){
$number = str_replace('@qq.com','',$number);
echo '<img src="https://q.qlogo.cn/headimg_dl?dst_uin='.$number.'&spec=40">';
}else{
$comments->gravatar('40', '');
}
?>