目 录CONTENT

文章目录

typecho不修改内核,更换Gravatar头像源

老K博客
2023-09-20 / 0 评论 / 0 点赞 / 157 阅读 / 687 字 / 正在检测是否收录...
广告 广告

Gravatar的官方无法访问,不知道是网络丢包还是墙了,总之很不爽。百度了一下,发现很多博客都遇到了相似的问题,因为Gravatar其实是经常被墙的,每次出现这个问题,整个网站的所有头像图片都会无法加载,形成一堆报错和死链。而且特别是我博客这个模板又是在各个地方调用头像的,所以我觉得有必要解决一下这个问题。

网上的教程都是告诉你修改typecho的内部控制文件,我觉得这样很不妥,基本上升级了就回到解放前,而且没准官方未来会有新的定义,所以我决定在模板层面实现,这样无论typecho怎样升级,都不会改变我的头像调用。实际上,这个很简单,我只在模板控制器定义了一个方法,就成功了开始了每个页面愉快的调用。

教程开始

国内其实是有Gravatar源的
http://cdn.v2ex.com/gravatar/

如果细心点,就会发现,头像的路径其实就是一个地址,带上被md5加密的邮箱,和一个s参数控制宽度高度。

修改模板function.php文件,添加md5的加密方法。
function tmd5($text){
    if($text){ 
        
        $tmd5 = md5($text);
        echo $tmd5;
    }else{
        echo 'none';
    }
}

这段代码就是可以将邮箱地址转换为md5,配合头像的请求url,就可以愉快的调用用户头像了,并且直接替换掉官方的头像调用标签即可。

关于我博客不同区域的头像调用方式(以实际状况为准)

调用当前登录用户头像,后面的s参数代表宽高为30。

<img src="//cdn.v2ex.com/gravatar/<?php tmd5($this->user->mail); ?>?s=30" />

调用文章列表和文章详情的作者头像,后面的s参数代表宽高为25。

<img src="//cdn.v2ex.com/gravatar/<?php tmd5($this->author->mail); ?>?s=25" />

调用评论列表留言者头像,后面的s参数代表宽高为40。

<img src="//cdn.v2ex.com/gravatar/<?php tmd5($comments->mail); ?>?s=40" />

说白了,就是将调用出来的邮箱用md5加密,然后与国内的Gravatar源url组合,就成了头像的地址。感觉还是挺简单的,我还计划直接在模板里写一个可以切换头像源的功能,直接控制调用国外还是国内。

0
广告 广告

评论区