I don't like the idea of using Gravatar, and I don't want my users to be able to change their avatar. However I want to replace the avatar for the admin role only. Is it possible to do this without using a plugin and without Gravatar?
I have found code snippets to replace the default gravatar, but that would be sitewide for all users. I only want to replace the admin avatar.
Thank you!
I don't like the idea of using Gravatar, and I don't want my users to be able to change their avatar. However I want to replace the avatar for the admin role only. Is it possible to do this without using a plugin and without Gravatar?
I have found code snippets to replace the default gravatar, but that would be sitewide for all users. I only want to replace the admin avatar.
Thank you!
Share Improve this question asked Nov 21, 2019 at 14:38 jockebqjockebq 4631 gold badge6 silver badges18 bronze badges 2- Do you want a specific image for the administrators of the website? – giannisrig Commented Nov 21, 2019 at 14:54
- Yes! Exactly, I want to specify it (in code) – jockebq Commented Nov 21, 2019 at 15:03
1 Answer
Reset to default 1I might have found a solution. It seems to work, but maybe I am missing something?
function custom_user_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
$user = false;
if ( is_numeric( $id_or_email ) ) {
$id = (int) $id_or_email;
$user = get_user_by( 'id' , $id );
} else if ( is_object( $id_or_email ) ) {
if ( ! empty( $id_or_email->user_id ) ) {
$id = (int) $id_or_email->user_id;
$user = get_user_by( 'id' , $id );
}
} else {
$user = get_user_by( 'email', $id_or_email );
}
if ( $user && is_object( $user ) ) {
if ( $user->data->ID == '1' ) {
$avatar = sprintf( '%s/images/avatar/support-male.png', get_stylesheet_directory_uri() );
$avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
}
else if ( $user->data->ID == '200' ) {
$avatar = sprintf( '%s/images/avatar/support-female.png', get_stylesheet_directory_uri() );
$avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
}
else {
$avatar = sprintf( '%s/images/avatar/default.png', get_stylesheet_directory_uri() );
$avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
}
}
return $avatar;
}
add_filter( 'get_avatar' , 'custom_user_avatar' , 1 , 5 );