开往   虫洞   统计
  • 文章总数:148 篇
  • 评论总数:5 条
  • 分类总数:7 个
  • 最后更新:一小时前

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

本文阅读 3 分钟
首页 建站代码 正文

今天偶然发现有的博友可能没有注册 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 .= '&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;
    }
本文来自投稿,不代表本站立场,如若转载,请注明出处:
-- 展开阅读全文 --
愁容满面,只因爱过
« 上一篇 02-21
据说看完的情侣会走得更长久
下一篇 » 02-24

发表评论

发表评论
    请配置好页面缩略名选项

热门文章

标签TAG