Typecho 可覆盖到后台的修改全局头像 CDN 地址方法

2021-06-21 14:19:00
 尚寂新

非常简单。一句话就能说完,我还水个文...
config.inc.php或者index.php追加一个全局变量

define('__TYPECHO_GRAVATAR_PREFIX__', 'https://sdn.geekzu.org/avatar/');

即可。以解决 Gravatar 官方源在国内无法访问的问题。

此方法不同于魔改主题的方法,这么搞,后台的有关于头像的地方都能覆盖到,也不用改动 Typecho 的源码,做到无伤改动,不影响升级。
此处使用极客族的镜像头像源作为示例。

文档里没有,那就读源码

/var/Typecho/Common.php

public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
    if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
        $url = __TYPECHO_GRAVATAR_PREFIX__;
    } else {
        $url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
        $url .= '/avatar/';
    }
    // 省略下面的内容,只展示重要部分
}

很显而易见,在外面定义一个全局变量,头像地址就能跟着全局变量定义的走了。