Typecho将评论头像修改为QQ头像

1
spimes更新了7.0,
更新内容:删减了大部分主题功能(主要是一些不常用的功能,鸡肋的功能), 优化了头像设置,不使用qq头像,但是处于考虑,只允许默认头像来选择 ,添加了AI生文功能(chatgpt+百度文心一言),添加了AI客服功能(只限Gpt),AI客服功能具体怎么用,可在插件配置里面进行简单训练,功能集中在插件里面,后续更新也是围绕ai方面……
这个操作很奇怪,现在在外观设置里设计默认头像后,所有的显示头像的地方都变成了设计的 默认头像 ,博主头像,评论区头像,都是,就很别扭哈,直接退回6.0,目前6.0已满足自己的需求吗,后续调试好再去更新。

翻了翻灯泡的网站,找到一个初始的设置头像的方法,还没来得及测试,有需要的可以试试(目测是可行的)

还有另外一篇可以测试


本文内容来源于: Typecho将评论头像修改为QQ头像

<?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%;">'; ?>

用以上代码替换comment.php里面默认的gravatar代码即可。

下面还有一个更完善的办法,因为当访客使用QQ邮箱评论时会显示QQ头像,可是如果使用的不是QQ头像,就会显示一个QQ企鹅头像

首先,将下面的代码丢到funtions.php文件当中。

//获取Gravatar头像 QQ邮箱取用qq头像
function getGravatar($email, $s = 96, $d = 'mp', $r = 'g', $img = false, $atts = array())
{
preg_match_all('/((\d)*)@qq.com/', $email, $vai);
if (empty($vai['1']['0'])) {
    $url = 'https://www.gravatar.com/avatar/';
    $url .= md5(strtolower(trim($email)));
    $url .= "?s=$s&d=$d&r=$r";
    if ($img) {
        $url = '<img src="' . $url . '"';
        foreach ($atts as $key => $val)
            $url .= ' ' . $key . '="' . $val . '"';
        $url .= ' />';
    }
}else{
    $url = 'https://q2.qlogo.cn/headimg_dl?dst_uin='.$vai['1']['0'].'&spec=100';
}
return  $url;
}

其次,再将下面的代码复制到需要放头像的页面,通常是comments.php页面和sidebar.php页面。

把里面的

<?php $comments->gravatar('100', ''); ?>

改为:

<?php $email=$comments->mail; $imgUrl = getGravatar($email);echo '<img src="'.$imgUrl.'" width="45px" height="45px" style="border-radius: 50%;" >'; ?>

该代码可以实现的功能:当客户评论时用的不是QQ邮箱,则显示gavatar头像,否则则显示QQ头像。完美!

扩展用途:

站长在其他位置显示头像的地方

<?php echo $this->author->gravatar(500); ?>

改为:

<?php $email=$this->author->mail; $imgUrl = getGravatar($email);echo '<img src="'.$imgUrl.'" width="45px" height="45px" style="border-radius: 50%;" >'; ?>
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容