Tpyecho评论无头像时修改默认头像

首页代码514 字

请输入图片描述

去 Gravatar 官网看了下,发现其实可以修改默认的灰底人头头像,方法也很简单,修改后可以随机出现某种类型图案。

当然网上还有什么使用 QQ 头像替换 Gravatar 头像的之类的方法,但我不太想用,主要不太喜欢各种 API 调用。话不多说,直接看最简单的代码吧!

在主题 comments.php 文件中找到如下代码:

$host = 'https://secure.gravatar.com';
$url = '/avatar/';
$size = '80';
$default = 'mm';
$rating = Helper::options()->commentsAvatarRating;
$hash = md5(strtolower($comments->mail));

可以看到上代码中 $default = 'mm'; 是显示默认代码的,我们只要修改后面的 mm 就可以了。

mm 简约、卡通风格的人物轮廓像(不会随邮箱哈希值变化而变化)。
identicon 几何图案,其形状会随电子邮箱哈希值变化而变化。
monsterid 程序生成的“怪兽”头像,颜色和面孔会随会随电子邮箱哈希值变化而变化。
wavatar 用不同面容和背景组合生成的面孔头像。
retro 程序生成的8位街机像素头像。

请输入图片描述

具体样式对应的单词上面已放出啦,具体效果可以自行修改后查看。

最新新增:有博友问我可否自定义自己的随机图片来作为无头像的显示,其实 Gravatar 官网上有说明。

可以将 $default = 'mm'; 里的 mm 替换为图片地址即可,如下:

$default = 'http%3A%2F%2Fexample.com%2Fimages.jpg';

需要注意的是这个URL链接需要进行URL编码(百度下即可),已确保传输的正确性。

当然你也可以自己写个显示随机图片的 PHP 文件用来显示随机自定义头像,很简单,如下:

<?php
$img_array = glob('images/*.{gif,jpg,png,jpeg,webp,bmp}', GLOB_BRACE);
if(count($img_array) == 0) die('没找到图片,请上传图片到 '.dirname(__FILE__).'/images/ 文件夹');
header('Content-Type: image/png');
echo(file_get_contents($img_array[array_rand($img_array)]));
?>

好啦,今天就说这么多啦!

默认主题修改位置 /var/Typecho/common.php第937行;

public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
    {
        $url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
        $url .= '/avatar/';
     
        if (!empty($mail)) {
           $url .= md5(strtolower(trim($mail)));
        }
     
        $url .= '?s=' . $size;
        $url .= '&amp;r=' . $rating;
        $url .= '&amp;d=' . $default;

        return $url;
    }

其中d的值就是用来设置默认头像的

public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
    {
        $url = $isSecure ? 'https://gravatar.loli.net/avatar/' : 'http://gravatar.duoshuo.com/avatar/';
        

        if (!empty($mail)) {
            $url .= md5(strtolower(trim($mail)));
        }

        $url .= '?s=' . $size;
        $url .= '&amp;r=' . $rating;
        $url .= '&amp;d=mm' . $default;

        return $url;
    }

云帆沧海
一个持续更新的个人博客,记录生活、工作、爱好的点点滴滴。
赞赏
OωO
开启隐私评论,您的评论仅作者和评论双方可见
评论 ( 1 )
  1. 确实是个问题,极其影响访问体验!

    2020年07月30日 - 加拿大 回复