使用互联网记录分享(Wide Area Network use :更好地使用互联网。)
Gravatar被墙WordPress无法正常显示Gravatar头像

Gravatar被墙WordPress无法正常显示Gravatar头像

WordPress无法正常显示Gravatar头像,查找原因是因为国内屏蔽了Gravatar导致的,这导致无数国内Wordpress网站头像无法显示,并且影响到了相关页面的访问速度(如果您的WordPress网站中没用使用Gravatar头像功能,则没用任何影响)

解决方法1:使用Gravatar的HTTPS(适用于任何主题):

在主题目录中,找到并打开 functions.php 文件,把以下代码复制放到该文件中:

文件位置资料:https://www.wbolt.com/guide-to-wp-functions.html

// HackGravatatr
function wpyou_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’, ‘wpyou_get_ssl_avatar’);

解决方法2:使用多说头像库替换(适用于任何主题):

在主题目录中,找到并打开 functions.php 文件,把以下代码复制放到该文件中:

// HackGravatatr
function wpyou_get_avatar($avatar) {
$avatar = str_replace(array(“www.gravatar.com”,”0.gravatar.com”,”1.gravatar.com”,”2.gravatar.com”),”gravatar.duoshuo.com”,$avatar);
return $avatar;
}
add_filter( ‘get_avatar’, ‘wpyou_get_avatar’, 10, 3 );

代码正确添加到主题的 functions.php 文件后即可使用多说提供的国内Gravatar服务了,从而完美解决问题。

最终使用下面代码解决:

/*修复wordpress上Cravatar头像无法显示问题*/
if ( ! function_exists( 'get_cravatar_url' ) ) {
    /**
     *替换Gravatar头像为Cravatar头像
     *
     * @param string $url
     *
     * @return string
     */
    function get_cravatar_url( $url ) {
        $sources = array(
            'www.gravatar.com',
            '0.gravatar.com',
            '1.gravatar.com',
            '2.gravatar.com',
            'secure.gravatar.com',
            'cn.gravatar.com'
        );
        return str_replace( $sources, 'cravatar.cn', $url );
    }
    add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
    add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
    add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}

发表回复

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