暂无AI摘要
今天偶然发现有的博友可能没有注册 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;
}
本文来自投稿,不代表本站立场,如若转载,请注明出处:
确实是个问题,极其影响访问体验!