[PHP] [原创]  WordPress BuddyPress插件 禁用Gravatar头像 WordPress优化

BuddyPress插件将WordPress从博客转变成为一个社区系统,但仍然保持着WordPress原有的功能。

但BuddyPress默认使用的头像是由Gravatar提供的,在国内使用会使得网站变得非常缓慢。

所以我们使用本地的默认头像来代替它。


在主题functions.php中加入以下的钩子和函数:


PHP代码

function bp_remove_gravatar ($image, $params, $item_id, $avatar_dir, $css_id, $html_width, $html_height, $avatar_folder_url, $avatar_folder_dir) {

    $default = get_stylesheet_directory_uri() .'/_inc/images/bp_default_avatar.jpg';

    if( $image && strpos( $image, "gravatar.com" ) ){ 

        return '<img src="' . $default . '" alt="avatar" class="avatar" ' . $html_width . $html_height . ' />';
    } else {
        return $image;

    }

}
add_filter('bp_core_fetch_avatar', 'bp_remove_gravatar', 1, 9 );

function remove_gravatar ($avatar, $id_or_email, $size, $default, $alt) {

    $default = get_stylesheet_directory_uri() .'/_inc/images/bp_default_avatar.jpg';
    return "<img alt='{$alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
}

add_filter('get_avatar', 'remove_gravatar', 1, 5);

function bp_remove_signup_gravatar ($image) {

    $default = get_stylesheet_directory_uri() .'/_inc/images/bp_default_avatar.jpg';

    if( $image && strpos( $image, "gravatar.com" ) ){ 

        return '<img src="' . $default . '" alt="avatar" class="avatar" width="150" height="150" />';
    } else {
        return $image;
    }

}
add_filter('bp_get_signup_avatar', 'bp_remove_signup_gravatar', 1, 1 );


实际使用中将图片路径替换即可。

修改完刷新,网站是不是快多了?

发表您的留言