Typecho更简单的解决Gravatar被墙

/ 80评 / 2

enter image description here

上篇文章由于技术拙计,使用了非常痴呆的修改源文件去解决Gravatar被墙的问题,一旦程序更新,那么一切又要重新修改,相对来说还是很麻烦的,于是,更简单的方法来了。 将下方代码粘贴进入主题文件夹下的function.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://secure.gravatar.com'; //自定义头像CDN服务器
            $url = '/avatar/'; //自定义头像目录,一般保持默认即可
            $size = '32'; //自定义头像大小
            $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>
<? }

OK,评论区域的头像问题就可以更简单的解决了,更新程序也不用重新修改源文件了。 头像源清参考:

https://secure.gravatar.com”可以改成其它源。

多说的源:http://gravatar.duoshuo.com

七牛镜像源:http://avacdn.qiniudn.com

七牛镜像SSH源:https://dn-avacdn.qbox.me

当然自己搭建七牛镜像,或者反向代理Gravatar也是比较简单的,就不再赘述。

如果使用“评论墙”功能,请参考 >上一篇文章<

本篇文章代码来自 @Rich

80条回应:“Typecho更简单的解决Gravatar被墙”

  1. 卧槽说道:

    不服啊

  2. 昌浩说道:

    secure不能用了233.。。

  3. 00000说道:

    感觉不错的样子

  4. mr derronm说道:

    来看牛人的代码。闪亮了我的狗眼。

  5. 破小懿说道:

    如果整个禁用gravatar的代码就更好了,嘿嘿

  6. 放射学说道:

    火狐浏览器侧边栏掉下去了。。。

  7. 九秒分享说道:

    你也是用的secure啊。。。

  8. 刘荣焕说道:

    我是来检测ajax评论的

  9. 无措说道:

    顺便说一下手机自适应,评论内容应该加一点padding,评论框会有显示不全的问题,上下排列比较好,

  10. 无措说道:

    这个评论框的确不怎么好看啊,还不如直接多说来的干脆。
    因为默认的wp评论框感觉要填写的东西实在是太多了,并且还需要安装评论后的邮件回复插件,挺麻烦的。

    。。。。
    发现你这个评论框的url还必须填写http://

    • Tokin说道:

      @无措 多说抽风起来加载实在太慢了,评论数据还是放在自己的数据库里安全。
      另外,我使用的是Typecho,不是wordpress,网址需要填写http://。

发表评论

电子邮件地址不会被公开。 必填项已用*标注