Update: New versions of BuddyPress (1.7+) only need to add the following snippet to their bp-custom.php file

    add_filter('bp_core_fetch_avatar_no_grav', '__return_true');

Gravatars are pretty darn great in general. But for certain communities there might be privacy reasons to disable them. BuddyPress let’s you do this, but it does not stop the calls being made to the Gravatar servers. This can sometimes lead to slower page loading times, and thus the people at BuddyPress.org came to the rescue! It took them a while to figure it out, but Scabadaska found a way to do it! Below is the complete code you need to put in functions.php or bp-custom.php. Enjoy!

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 );
Tagged

Leave a Reply

Your email address will not be published. Required fields are marked *