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.


$avatar string
HTML for the user's avatar.
$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.
$size int
Square avatar width and height in pixels to retrieve.
$default_value string
URL for the default image or a default type. Accepts '404', 'retro', 'monsterid', 'wavatar', 'indenticon', 'mystery', 'mm', 'mysteryman', 'blank', or 'gravatar_default'.
$alt string
Alternative text to use in the avatar image tag.
$args array
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 image file 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' (8bit), 'monsterid' (monster), 'wavatar' (cartoon face), 'indenticon' (the "quilt"), 'mystery', 'mm', or 'mysteryman' (The Oyster Man), 'blank' (transparent GIF), or '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', 'PG', 'R', 'X', and are judged in that order. 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.

Top ↑

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.

Top ↑


File: wp-includes/pluggable.php. View all references

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

Top ↑


Version Description
4.2.0 The $args parameter was added.
2.5.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Steven Lin

    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.