get_avatar( mixed $id_or_email, int $size = 96, string $default_value = '', string $alt = '', array $args = null ): string|false
Retrieves the avatar <img>
tag for a user, email address, MD5 hash, comment, or post.
Parameters
-
$id_or_email
mixed Required -
The Gravatar to retrieve. Accepts a user_id, gravatar md5 hash, user email, WP_User object, WP_Post object, or WP_Comment object.
-
$size
int Optional -
Height and width of the avatar image file in pixels.
Default:
96
-
$default_value
string Optional -
URL for the default image or a default type. Accepts
'404'
(return a 404 instead of a default image),'retro'
(8bit),'RoboHash'
(robohash),'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'
.Default:
''
-
$alt
string Optional -
Alternative text to use in img tag.
Default:
''
-
$args
array Optional -
Extra arguments to retrieve the avatar.
height
intDisplay height of the avatar in pixels. Defaults to $size.width
intDisplay width of the avatar in pixels. Defaults to $size.force_default
boolWhether to always show the default image, never the Gravatar. Default false.rating
stringWhat 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
stringclass
array|stringArray or string of additional classes to add to the img element.
force_display
boolWhether to always show the avatar - ignores the show_avatars option.
Default false.loading
stringValue for theloading
attribute.
extra_attr
stringHTML attributes to insert in the IMG element. Is not sanitized. Default empty.
Default:
null
Return
string|false <img>
tag for the user's avatar. False on failure.
Source
File: wp-includes/pluggable.php
.
View all references
function get_avatar( $id_or_email, $size = 96, $default_value = '', $alt = '', $args = null ) {
$defaults = array(
// get_avatar_data() args.
'size' => 96,
'height' => null,
'width' => null,
'default' => get_option( 'avatar_default', 'mystery' ),
'force_default' => false,
'rating' => get_option( 'avatar_rating' ),
'scheme' => null,
'alt' => '',
'class' => null,
'force_display' => false,
'loading' => null,
'extra_attr' => '',
'decoding' => 'async',
);
if ( wp_lazy_loading_enabled( 'img', 'get_avatar' ) ) {
$defaults['loading'] = wp_get_loading_attr_default( 'get_avatar' );
}
if ( empty( $args ) ) {
$args = array();
}
$args['size'] = (int) $size;
$args['default'] = $default_value;
$args['alt'] = $alt;
$args = wp_parse_args( $args, $defaults );
if ( empty( $args['height'] ) ) {
$args['height'] = $args['size'];
}
if ( empty( $args['width'] ) ) {
$args['width'] = $args['size'];
}
if ( is_object( $id_or_email ) && isset( $id_or_email->comment_ID ) ) {
$id_or_email = get_comment( $id_or_email );
}
/**
* Allows the HTML for a user's avatar to be returned early.
*
* Returning a non-null value will effectively short-circuit get_avatar(), passing
* the value through the {@see 'get_avatar'} filter and returning early.
*
* @since 4.2.0
*
* @param string|null $avatar HTML for the user's avatar. Default null.
* @param mixed $id_or_email The avatar to retrieve. Accepts a user_id, Gravatar MD5 hash,
* user email, WP_User object, WP_Post object, or WP_Comment object.
* @param array $args Arguments passed to get_avatar_url(), after processing.
*/
$avatar = apply_filters( 'pre_get_avatar', null, $id_or_email, $args );
if ( ! is_null( $avatar ) ) {
/** This filter is documented in wp-includes/pluggable.php */
return apply_filters( 'get_avatar', $avatar, $id_or_email, $args['size'], $args['default'], $args['alt'], $args );
}
if ( ! $args['force_display'] && ! get_option( 'show_avatars' ) ) {
return false;
}
$url2x = get_avatar_url( $id_or_email, array_merge( $args, array( 'size' => $args['size'] * 2 ) ) );
$args = get_avatar_data( $id_or_email, $args );
$url = $args['url'];
if ( ! $url || is_wp_error( $url ) ) {
return false;
}
$class = array( 'avatar', 'avatar-' . (int) $args['size'], 'photo' );
if ( ! $args['found_avatar'] || $args['force_default'] ) {
$class[] = 'avatar-default';
}
if ( $args['class'] ) {
if ( is_array( $args['class'] ) ) {
$class = array_merge( $class, $args['class'] );
} else {
$class[] = $args['class'];
}
}
// Add `loading` and `decoding` attributes.
$extra_attr = $args['extra_attr'];
if ( in_array( $args['loading'], array( 'lazy', 'eager' ), true )
&& ! preg_match( '/\bloading\s*=/', $extra_attr )
) {
if ( ! empty( $extra_attr ) ) {
$extra_attr .= ' ';
}
$extra_attr .= "loading='{$args['loading']}'";
}
if ( in_array( $args['decoding'], array( 'async', 'sync', 'auto' ), true )
&& ! preg_match( '/\bdecoding\s*=/', $extra_attr )
) {
if ( ! empty( $extra_attr ) ) {
$extra_attr .= ' ';
}
$extra_attr .= "decoding='{$args['decoding']}'";
}
$avatar = sprintf(
"<img alt='%s' src='%s' srcset='%s' class='%s' height='%d' width='%d' %s/>",
esc_attr( $args['alt'] ),
esc_url( $url ),
esc_url( $url2x ) . ' 2x',
esc_attr( implode( ' ', $class ) ),
(int) $args['height'],
(int) $args['width'],
$extra_attr
);
/**
* Filters the HTML for a user's avatar.
*
* @since 2.5.0
* @since 4.2.0 The `$args` parameter was added.
*
* @param string $avatar HTML for the user's avatar.
* @param mixed $id_or_email The avatar to retrieve. Accepts a user_id, Gravatar MD5 hash,
* user email, WP_User object, WP_Post object, or WP_Comment object.
* @param int $size Square avatar width and height in pixels to retrieve.
* @param string $default_value URL for the default image or a default type. Accepts '404', 'retro', 'monsterid',
* 'wavatar', 'indenticon', 'mystery', 'mm', 'mysteryman', 'blank', or 'gravatar_default'.
* @param string $alt Alternative text to use in the avatar image tag.
* @param array $args Arguments passed to get_avatar_data(), after processing.
*/
return apply_filters( 'get_avatar', $avatar, $id_or_email, $args['size'], $args['default'], $args['alt'], $args );
}
Hooks
-
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.
-
apply_filters( 'pre_get_avatar',
string|null $avatar ,mixed $id_or_email ,array $args ) -
Allows the HTML for a user’s avatar to be returned early.
Changelog
Version | Description |
---|---|
4.2.0 | Optional $args parameter added. |
2.5.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
Example for a post’s author, in The Loop.
If this function isn’t returning anything for you, go to Settings > Discussion and make sure Show Avatars is checked.
Example for the class attribute:
Note: It seems that all the parameters have to be present or it doesn’t work.
Example for comments.
Example for a random email address.