web-dev-qa-db-fra.com

Comment remplacer les avatars des membres dans BuddyPress

J'ai tout essayé pour écraser l'avatar de BP. Nous avons trouvé environ 5 ou 6 résultats Google différents qui, globalement, indiquent la même solution:

function override_bp_member_avatar($url) {
    return get_stylesheet_directory_uri() . '/default_avatar.png';
}
add_filter('bp_core_fetch_avatar_no_grav', '__return_true'); // http://codex.buddypress.org/extending-buddypress/tips-tricks/
add_filter('bp_core_mysteryman_src', 'override_bp_member_avatar'); // http://www.buddyboss.com/instructions/

Pourtant ça ne marche pas.

Quelqu'un at-il réussi à utiliser un avatar par défaut pour les membres?

3
user11948

Les filtres que vous citez ne concernent que les avatars par défaut/de secours. Si vous souhaitez remplacer complètement les avatars BP, les filtres de clé sont bp_core_fetch_avatar et bp_core_fetch_avatar_url. Ce dernier filtre l’élément HTML entier de l’avatar, alors que ce dernier ne traite que l’URL.

La façon dont vous faites le filtrage dépend de votre envie. Le bp_core_fetch_avatar transmet beaucoup de paramètres utiles, si vous voulez reconstruire totalement l'avatar HTML: https://buddypress.trac.wordpress.org/browser/tags/1.5.5/bp-core/bp-core- avatars.php # L297 Sinon, pour une solution rapide, vous pouvez simplement preg_replace() l'URL.

/**
 * This function returns your new avatar URL. You can put whatever logic in here you want
 */
function wpse_49216_my_new_avatar_url() {
    return 'http://example.com/avatar.jpg';
}
add_filter( 'bp_core_fetch_avatar_url', 'wpse_49216_my_new_avatar_url' );

function wpse_49216_filter_bp_avatar( $html ) {
    return preg_replace( '/src=".+?"/', 'src="' . wpse_49216_my_new_avatar_url() . '"', $html );
}
add_filter( 'bp_core_fetch_avatar', 'wpse_49216_filter_bp_avatar' );

EDIT: La méthode ci-dessus remplacera tous les avatars. Si vous souhaitez uniquement modifier l'avatar par défaut/de secours (pour les utilisateurs qui n'ont pas téléchargé le leur), essayez

/**
 * Disable Gravatar throughout BP
 */
add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );

/**
 * Provide a global user avatar default
 */
function wpse_49216_my_new_default_avatar_url() {
    return 'http://example.com/avatar.jpg';
}
add_filter( 'bp_core_default_avatar_user', 'wpse_49216_my_new_default_avatar_url' );
2
Boone Gorges