typecho将Gravatar头像改为QQ头像
本帖最后由 MengZe2 于 2023-11-1 16:44 编辑前言
原贴地址:https://cloud.tencent.com/developer/article/1667850
相信大部分做过网站的朋友都知道,Gravatar是一个全球性的头像设置平台,除中国以外大部分网站都是调用的此平台头像,但因为我们伟大的祖国有一般人射不穿的城墙(网友们都懂的๑乛◡乛๑),所以用这个头像平台的用户很少,导致大部分使用此头像平台的网站,评论区总会有很多Gravatar 官方头像。
https://www.zzwws.cn/usr/uploads/2019/06/394415904.png
定位文件
找到主题下的`comments.php`文件,查找关键字`gravatar`
我们会发现下面一段语句
<?php $comments->gravatar('40', ''); ?>
https://www.zzwws.cn/usr/uploads/2019/06/1995900091.png
果断删掉`$comments->gravatar('40', '');`,再去文章页刷新一看,头像果然消失了,这时我们再重新输出一个 img 标签就好了。
接下来搞定头像获取就好啦,去数据库看了看,存邮箱的字段名是 `mail`,所以获取内容应该是`$comments->mail;`,先 `new `个变量获取下邮箱吧`$number=$comments->mail;`。
接下来就好说了,把接口里的"QQ 号"改为"`$number`",然后 `echo` 一下就好啦。
<span itemprop="image"><?php $number=$comments->mail; echo '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'; ?></span>
<span itemprop="image"><?php $number=$comments->mail; echo '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'; ?></span>
https://www.zzwws.cn/usr/uploads/2019/06/1973689727.png
总结
即用第二条语句把原来的`<?php $comments->gravatar('40', ''); ?>`替换掉即可。
效果
https://www.zzwws.cn/usr/uploads/2019/06/1599283380.png
更新
在通常情况下,当用户输入了QQ邮箱,我们的头像才会调用为QQ头像。但是假如用户使用的是163邮箱或者是其他邮箱,那么头像肯定会显示失败。那么该怎样解决这个问题呢?其实也很简单,我们放个if判断语句就行了。先判断输入的邮箱是不是QQ邮箱,如果是调用QQ邮箱,如果不是则调用Gravatar头像或者其他的静态头像,或者随机头像即可。
更新代码
<?php
$number=$comments->mail;
if(preg_match('|^\d{4,11}@qq\.com$|i',$number)){
$number = str_replace('@qq.com','',$number);
echo 'https://q.qlogo.cn/headimg_dl?dst_uin='.$number.'&spec=40';
}else{
$comments->gravatar('40', '');
}
?>
本帖最后由 MengZe2 于 2023-11-1 06:42 编辑
换了个新风格发帖,我不是原创!搬运自我自己的博客,网络上这种教程很多,所以我不是原创
页: [1]