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

本文阅读 3 分钟
广告

今天早上,本来心情美滋滋的看博客的访问情况和回复后台的评论,然后返回页面上一看,所有的头像都不显示了,Gravatar的官方无法访问,不知道是网络丢包还是墙了,总之很不爽。百度了一下,发现很多博客都遇到了相似的问题,因为Gravatar其实是经常被墙的,每次出现这个问题,整个网站的所有头像图片都会无法加载,形成一堆报错和死链。而且特别是我博客这个模板又是在各个地方调用头像的,所以我觉得有必要解决一下这个问题。
网上的教程都是告诉你修改typecho的内部控制文件,我觉得这样很不妥,基本上升级了就回到解放前,而且没准官方未来会有新的定义,所以我决定在模板层面实现,这样无论typecho怎样升级,都不会改变我的头像调用。实际上,这个很简单,我只在模板控制器定义了一个方法,就成功了开始了每个页面愉快的调用。

教程开始

1.国内其实是有Gravatar源的

http://cdn.v2ex.com/gravatar/

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

2.修改模板function.php文件,添加md5的加密方法。

function tmd5($text){
    if($text){ 
        
        $tmd5 = md5($text);
        echo $tmd5;
    }else{
        echo 'none';
    }
}

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

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

调用当前登录用户头像,后面的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组合,就成了头像的地址。感觉还是挺简单的,我还计划直接在模板里写一个可以切换头像源的功能,直接控制调用国外还是国内。

【规则之树版权所有,转载注明来源】

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/1043/
长期更新,国内所有小说建站系统整理
« 上一篇 02-25
linux系统apache虚拟主机,防御基础配置
下一篇 » 03-01
广告

发表评论

V注册会员 L评论等级
R7 条回复
  1. @qq.comLv.1 说道:
    2021-05-02     Win 10 /    Chrome

  2. zzwzLv.1 说道:
    2021-01-10     Win 10 /    Chrome

    测试

  3. 其华Lv.1 说道:
    2020-04-04     Win 10 /    FireFox

    测试头像

  4. guan yinliLv.1 说道:
    2019-12-27     Win 10 /    Chrome

    icon_smile.gif

  5. ScvoetLv.1 说道:
    2019-03-15     Android /    Chrome

    并不需要未来,现在官方就支持自定义Gravatar源。
    具体方式为在config.inc.php中加入
    define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cdn.v2ex.com/gravatar/');

    1. 不暇VLv.6 说道:
      2019-03-15     Win 7 /    Chrome

      @Scvoet

      问题在于我不是官方的最新版本,只是1.1的正式版,config.inc.php并没有此定义。

没有更多评论了

作者信息

热门文章

标签TAG

热评文章