apply_filters( ‘get_avatar’, string $avatar, mixed $id_or_email, int $size, string $default_value, string $alt, array $args )

Filters the HTML for a user’s avatar.

Parameters

$avatarstring
HTML for the user’s avatar.
$id_or_emailmixed
The avatar to retrieve. Accepts a user ID, Gravatar MD5 hash, user email, WP_User object, WP_Post object, or WP_Comment object.
$sizeint
Height and width of the avatar in pixels.
$default_valuestring
URL for the default image or a default type. Accepts:
  • '404' (return a 404 instead of a default image)
  • 'retro' (a 8-bit arcade-style pixelated face)
  • 'robohash' (a robot)
  • 'monsterid' (a monster)
  • 'wavatar' (a cartoon face)
  • 'identicon' (the "quilt", a geometric pattern)
  • 'mystery', 'mm', or 'mysteryman' (The Oyster Man)
  • 'blank' (transparent GIF)
  • 'gravatar_default' (the Gravatar logo)
$altstring
Alternative text to use in the avatar image tag.
$argsarray
Arguments passed to get_avatar_data() , after processing.
More Arguments from get_avatar_data( … $args )Arguments to use instead of the default arguments.
  • size int
    Height and width of the avatar in pixels. Default 96.
  • height int
    Display height of the avatar in pixels. Defaults to $size.
  • width int
    Display width of the avatar in pixels. Defaults to $size.
  • default string
    URL for the default image or a default type. Accepts:
    • '404' (return a 404 instead of a default image)
    • 'retro' (a 8-bit arcade-style pixelated face)
    • 'robohash' (a robot)
    • 'monsterid' (a monster)
    • 'wavatar' (a cartoon face)
    • 'identicon' (the "quilt", a geometric pattern)
    • 'mystery', 'mm', or 'mysteryman' (The Oyster Man)
    • 'blank' (transparent GIF)
    • 'gravatar_default' (the Gravatar logo) Default is the value of the 'avatar_default' option, with a fallback of 'mystery'.
  • force_default bool
    Whether to always show the default image, never the Gravatar.
    Default false.
  • rating string
    What rating to display avatars up to. Accepts:
    • 'G' (suitable for all audiences)
    • 'PG' (possibly offensive, usually for audiences 13 and above)
    • 'R' (intended for adult audiences above 17)
    • 'X' (even more mature than above) Default is the value of the 'avatar_rating' option.
  • scheme string
    URL scheme to use. See set_url_scheme() for accepted values.
  • processed_args array
    When the function returns, the value will be the processed/sanitized $args plus a "found_avatar" guess. Pass as a reference.
  • extra_attr string
    HTML attributes to insert in the IMG element. Is not sanitized.
    Default empty.

More Information

The “get_avatar” filter can be used to alter the avatar image returned by the get_avatar() function.

There are two tricky parts to using this filter:

  1. get_avatar() can be passed a user ID, user object or email address. So we will not know what we are looking at and will need to check for them all.
  2. It returns the entire image html string with classes, alt, and src. So you need to recreate the entire thing, not just send back the image url.

Source

return apply_filters( 'get_avatar', $avatar, $id_or_email, $args['size'], $args['default'], $args['alt'], $args );

Changelog

VersionDescription
4.2.0Added the $args parameter.
2.5.0Introduced.

User Contributed Notes

  1. Skip to note 2 content

    Example migrating from Codex:

    In this example, I am looking for user with an id of 1 and sending back a custom image.

    // Apply filter
    add_filter( 'get_avatar' , 'my_custom_avatar' , 1 , 5 );
    
    function my_custom_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 );
    
        } elseif ( 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 = 'YOUR_NEW_IMAGE_URL';
                $avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
            }
    
        }
    
        return $avatar;
    }

You must log in before being able to contribute a note or feedback.