Title: pre_get_avatar_data
Published: April 23, 2015
Last modified: May 20, 2026

---

# apply_filters( ‘pre_get_avatar_data’, array $args, mixed $id_or_email )

## In this article

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

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

Filters whether to retrieve the avatar URL early.

## 󠀁[Description](https://developer.wordpress.org/reference/hooks/pre_get_avatar_data/?output_format=md#description)󠁿

Passing a non-null value in the ‘url’ member of the return array will effectively
short circuit [get_avatar_data()](https://developer.wordpress.org/reference/functions/get_avatar_data/),
passing the value through the [‘get_avatar_data’](https://developer.wordpress.org/reference/hooks/get_avatar_data/)
filter and returning early.

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

 `$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.

`$id_or_email`mixed

The avatar to retrieve. Accepts a user ID, Gravatar SHA-256 or 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.

## 󠀁[Source](https://developer.wordpress.org/reference/hooks/pre_get_avatar_data/?output_format=md#source)󠁿

    ```php
    $args = apply_filters( 'pre_get_avatar_data', $args, $id_or_email );
    ```

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

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

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

Retrieves default data about the avatar.

  |

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

| Version | Description | 
| [4.2.0](https://developer.wordpress.org/reference/since/4.2.0/) | Introduced. |

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

 1.  [Skip to note 2 content](https://developer.wordpress.org/reference/hooks/pre_get_avatar_data/?output_format=md#comment-content-3701)
 2.   [wpexplorer](https://profiles.wordpress.org/wpexplorer/)  [  6 years ago  ](https://developer.wordpress.org/reference/hooks/pre_get_avatar_data/#comment-3701)
 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%2Fpre_get_avatar_data%2F%23comment-3701)
    Vote results for this note: 0[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%2Fpre_get_avatar_data%2F%23comment-3701)
 4. Can be used to display an image from your media library for a specific user to 
    prevent requests to Gravatar and speed things up.
 5.     ```php
        add_filter( 'pre_get_avatar_data', function( $data, $id_or_email ) {
        	if ( 'author_email_to_check' == $id_or_email || 'author_id_to_check' == $id_or_email ) {
        		$img_src = wp_get_attachment_image_src( 'attachment_id_to_display', array( $data['width'], $data['height'] ) );
        		if ( isset( $img_src[0] ) ) {
        			$data['url'] = $img_src[0];
        		}
        	}
        	return $data;
        }, 10, 2 );
        ```
    
 6. Be sure to replace “author_email_to_check”, “author_id_to_check” and “attachment_id_to_display”
    to their corresponding values.
 7.  [Log in to add feedback](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fpre_get_avatar_data%2F%3Freplytocom%3D3701%23feedback-editor-3701)

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