Title: get_avatar
Published: April 25, 2014
Last modified: May 20, 2026

---

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

## In this article

 * [Parameters](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#parameters)
 * [More Information](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#more-information)
 * [Source](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#changelog)
 * [User Contributed Notes](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#user-contributed-notes)

[ Back to top](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#wp--skip-link--target)

Filters the HTML for a user’s avatar.

## 󠀁[Parameters](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#parameters)󠁿

 `$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](https://developer.wordpress.org/reference/classes/wp_user/)
object, [WP_Post](https://developer.wordpress.org/reference/classes/wp_post/) object,
or [WP_Comment](https://developer.wordpress.org/reference/classes/wp_comment/) object.

`$size`int

Height and width of the avatar in pixels.

`$default_value`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)

`$alt`string

Alternative text to use in the avatar image tag.

`$args`array

Arguments passed to [get_avatar_data()](https://developer.wordpress.org/reference/functions/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)
    - `'initials'` (initials based avatar with background color)
    - `'color'` (generated background color)
    - `'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()](https://developer.wordpress.org/reference/functions/set_url_scheme/)
   for accepted values.
    For Gravatars this setting is ignored and HTTPS is used
   to avoid unnecessary redirects. The setting is retained for systems using the
   ['pre_get_avatar_data'](https://developer.wordpress.org/reference/hooks/pre_get_avatar_data/)
   filter to customize avatars.
 * `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.

## 󠀁[More Information](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#more-information)󠁿

The “get_avatar” filter can be used to alter the avatar image returned by the [get_avatar()](https://developer.wordpress.org/reference/functions/get_avatar/)
function.

There are two tricky parts to using this filter:

 1. [get_avatar()](https://developer.wordpress.org/reference/functions/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](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#source)󠁿

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

[View all references](https://developer.wordpress.org/reference/files/wp-includes/pluggable.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/pluggable.php#L3353)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/pluggable.php#L3353-L3353)

## 󠀁[Related](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#related)󠁿

| Used by | Description | 
| [get_avatar()](https://developer.wordpress.org/reference/functions/get_avatar/)`wp-includes/pluggable.php` |

Retrieves the avatar `<img>` tag for a user, email address, MD5 hash, comment, or post.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.2.0](https://developer.wordpress.org/reference/since/4.2.0/) | Added the `$args` parameter. | 
| [2.5.0](https://developer.wordpress.org/reference/since/2.5.0/) | Introduced. |

## 󠀁[User Contributed Notes](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#user-contributed-notes)󠁿

 1.  [Skip to note 2 content](https://developer.wordpress.org/reference/hooks/get_avatar/?output_format=md#comment-content-4570)
 2.   [Steven Lin](https://profiles.wordpress.org/stevenlinx/)  [  6 years ago  ](https://developer.wordpress.org/reference/hooks/get_avatar/#comment-4570)
 3. [You must log in to vote on the helpfulness of this note](https://login.wordpress.org?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fget_avatar%2F%23comment-4570)
    Vote results for this note: 3[You must log in to vote on the helpfulness of this note](https://login.wordpress.org?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fget_avatar%2F%23comment-4570)
 4. Example migrating from Codex:
 5. In this example, I am looking for user with an id of 1 and sending back a custom
    image.
 6.     ```php
        // 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;
        }
        ```
    
 7.  [Log in to add feedback](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fget_avatar%2F%3Freplytocom%3D4570%23feedback-editor-4570)

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fget_avatar%2F)
before being able to contribute a note or feedback.