The get_avatar_data WordPress PHP filter allows you to modify the avatar data before it is retrieved.
Usage
add_filter('get_avatar_data', 'your_custom_function', 10, 2);
function your_custom_function($args, $id_or_email) {
// your custom code here
return $args;
}
Parameters
$args(array) – Arguments passed toget_avatar_data(), after processing.$id_or_email(mixed) – The avatar to retrieve. Accepts a user ID, Gravatar MD5 hash, user email, WP_User object, WP_Post object, or WP_Comment object.
More information
See WordPress Developer Resources: get_avatar_data
Examples
Change default avatar
Change the default avatar to a custom image.
add_filter('get_avatar_data', 'change_default_avatar', 10, 2);
function change_default_avatar($args, $id_or_email) {
$args['default'] = 'https://example.com/images/custom-avatar.png';
return $args;
}
Force avatar size
Force a specific avatar size, regardless of the size requested.
add_filter('get_avatar_data', 'force_avatar_size', 10, 2);
function force_avatar_size($args, $id_or_email) {
$args['size'] = 100;
return $args;
}
Use local avatar for a specific user
Use a local avatar image for a specific user based on their email address.
add_filter('get_avatar_data', 'use_local_avatar', 10, 2);
function use_local_avatar($args, $id_or_email) {
if ($id_or_email === '[email protected]') {
$args['url'] = 'https://example.com/images/local-avatar.jpg';
}
return $args;
}
Disable Gravatar use
Disable Gravatar use and fallback to the default avatar.
add_filter('get_avatar_data', 'disable_gravatar', 10, 2);
function disable_gravatar($args, $id_or_email) {
$args['url'] = false;
return $args;
}
Add custom class to avatar
Add a custom class to the avatar image.
add_filter('get_avatar_data', 'add_custom_avatar_class', 10, 2);
function add_custom_avatar_class($args, $id_or_email) {
$args['class'] = 'custom-avatar-class';
return $args;
}