
今天偶然发现有的博友可能没有注册 Gravatar 头像,导致评论的时候头像会显示默认的一个灰底人头的头像,看着看着觉得不太好看,可见下图。
去 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 .= '&r=' . $rating;
- $url .= '&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 .= '&r=' . $rating;
- $url .= '&d=mm' . $default;
-
- return $url;
- }
本文来自投稿,不代表本站立场,如若转载,请注明出处:
确实是个问题,极其影响访问体验!