众所周知,由于一些众所周知的原因,Gravatar在国内是访问不了的,但是Typecho的头像源必须是Gravatar,所以本文章将讲述如何解决Gravatar被墙的问题(使用镜像源)。
原文章:https://biji.io/2014/2732.html,感谢大佬~
直接进入主题文件夹(/usr/themes/主题名称)下的function(s).php文件内,粘贴以下代码:
//自定义评论列表区域
function threadedComments($comments, $options) {
$commentClass = '';
if ($comments->authorId) {
if ($comments->authorId == $comments->ownerId) {
$commentClass .= ' comment-by-author';
} else {
$commentClass .= ' comment-by-user';
}
}
$commentLevelClass = $comments->levels > 0 ? ' comment-child' : ' comment-parent';
?>
<li id="li-<?php $comments->theId(); ?>" class="comment-body<?php
if ($comments->levels > 0) {
echo ' comment-child';
$comments->levelsAlt(' comment-level-odd', ' comment-level-even');
} else {
echo ' comment-parent';
}
$comments->alt(' comment-odd', ' comment-even');
echo $commentClass;
?>">
<div id="<?php $comments->theId(); ?>">
<div class="comment-author">
<?php
//头像CDN by Rich
$host = 'https://cravatar.cn/'; //自定义头像镜像源
$url = '/avatar/'; //自定义头像目录,一般保持默认即可
$size = '64'; //自定义头像大小,原文章的大小太小了
$rating = Helper::options()->commentsAvatarRating;
$hash = md5(strtolower($comments->mail));
$avatar = $host . $url . $hash . '?s=' . $size . '&r=' . $rating . '&d=';
?>
<img class="avatar" src="<?php echo $avatar ?>" alt="<?php echo $comments->author; ?>" width="<?php echo $size ?>" height="<?php echo $size ?>" />
<cite class="fn"><?php $comments->author(); ?></cite>
</div>
<div class="comment-meta">
<a href="<?php $comments->permalink(); ?>"><?php $comments->date('Y-m-d H:i'); ?></a>
<span class="comment-reply"><?php $comments->reply(); ?></span>
</div>
<?php $comments->content(); ?>
</div>
<?php if ($comments->children) { ?>
<div class="comment-children">
<?php $comments->threadedComments($options); ?>
</div>
<?php } ?>
</li>
<? }
上面原文章的镜像源全去世了,所以替换为“https://cravatar.cn”,或者说你也可以自己搭个镜像源。
至此就解决问题啦~