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?
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' );