阿里云服务器免费领卷啦。

WordPress技巧:如何替换 Gravatar 头像的服务器地址

WordPress默认头像是使用Gravatar头像,而Gravatar头像服务在国内访问又不是很稳定,经常出现无法打开的情况,这样的话用户头像就可能会无法载入,本文介绍使用 Gravatar头像稳定服务器的方法。

解决思路

Gravatar头像无法稳定访问的原因不是Gravatar网站服务器的原因,是国内防火墙的问题,所以解决思路是使用Gravatar头像服务的(HTTPS)加密线路。

实现方法
进入WordPress后台,点击外观-》编辑-》找到functions.php

WordPress技巧:如何替换 Gravatar 头像的服务器地址

把代码添加到主题目录下的functions.php文件最后即可

function get_ssl_avatar($avatar) {
   $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

然后,刷新页面,就可以看到头像显示出来了。

2016.05.25 更新:


//替换Gavatar头像地址
function get_ssl_avatar($avatar) {
    if (preg_match_all(
        '/(src|srcset)=["\']https?.*?\/avatar\/([^?]*)\?s=([\d]+)&([^"\']*)?["\']/i',
        $avatar,
        $matches
    ) > 0) {
        $url = 'https://secure.gravatar.com';
        $size = $matches[3][0];
        $vargs = array_pad(array(), count($matches[0]), array());
        for ($i = 1; $i < count($matches); $i++) {
            for ($j = 0; $j < count($matches[$i]); $j++) {
                $tmp = strtolower($matches[$i][$j]);
                $vargs[$j][] = $tmp;
                if ($tmp == 'src') {
                    $size = $matches[3][$j];
                }
            }
        }
        $buffers = array();
        foreach ($vargs as $varg) {
            $buffers[] = vsprintf(
            '%s="%s/avatar/%s?s=%s&%s"',
            array($varg[0], $url, $varg[1], $varg[2], $varg[3])
           );
        }
        return sprintf(
                '<img alt="avatar" %s class="avatar avatar-%s" height="%s" width="%s" />',
                implode(' ', $buffers), $size, $size, $size
            );
    } else {
        return false;
    }
}
add_filter('get_avatar', 'get_ssl_avatar');


.

原文链接:,转发请注明来源!

发表评论

要发表评论,您必须先登录

  • 1 Responses to “WordPress技巧:如何替换 Gravatar 头像的服务器地址”