On this page
get_avatar( mixed $id_or_email, int $size = 96, string $default = '', 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_emailmixed Required-
The Gravatar to retrieve. Accepts a user_id, gravatar md5 hash, user email, WP_User object, WP_Post object, or WP_Comment object.
$sizeint Optional-
Height and width of the avatar image file in pixels.
Default:
96 $defaultstring Optional-
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'.Default:
'' $altstring Optional-
Alternative text to use in img tag.
Default:
'' $argsarray Optional-
Extra arguments to retrieve the avatar.
heightintDisplay height of the avatar in pixels. Defaults to $size.widthintDisplay width of the avatar in pixels. Defaults to $size.force_defaultboolWhether to always show the default image, never the Gravatar. Default false.ratingstringWhat 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.schemestringURL scheme to use. See set_url_scheme() for accepted values.
classarray|stringArray or string of additional classes to add to the img element.
force_displayboolWhether to always show the avatar - ignores the show_avatars option.
Default false.loadingstringValue for theloadingattribute.
extra_attrstringHTML 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 = '', $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;
$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` attribute.
$extra_attr = $args['extra_attr'];
$loading = $args['loading'];
if ( in_array( $loading, array( 'lazy', 'eager' ), true ) && ! preg_match( '/\bloading\s*=/', $extra_attr ) ) {
if ( ! empty( $extra_attr ) ) {
$extra_attr .= ' ';
}
$extra_attr .= "loading='{$loading}'";
}
if ( in_array( $args['decoding'], array( 'async', 'sync', 'auto' ) ) && ! 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 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 ,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.
Related
Uses
| Uses | Description |
|---|---|
| wp_get_loading_attr_default() wp-includes/media.php | Gets the default value to use for a |
| wp_lazy_loading_enabled() wp-includes/media.php | Determines whether to add the |
| get_avatar_url() wp-includes/link-template.php | Retrieves the avatar URL. |
| get_avatar_data() wp-includes/link-template.php | Retrieves default data about the avatar. |
| esc_attr() wp-includes/formatting.php | Escaping for HTML attributes. |
| esc_url() wp-includes/formatting.php | Checks and cleans a URL. |
| wp_parse_args() wp-includes/functions.php | Merges user defined arguments into defaults array. |
| apply_filters() wp-includes/plugin.php | Calls the callback functions that have been added to a filter hook. |
| get_option() wp-includes/option.php | Retrieves an option value based on an option name. |
| get_comment() wp-includes/comment.php | Retrieves comment data given a comment ID or comment object. |
| is_wp_error() wp-includes/load.php | Checks whether the given variable is a WordPress Error. |
Used By
| Used By | Description |
|---|---|
| WP_Comments_List_Table::floated_admin_avatar() wp-admin/includes/class-wp-comments-list-table.php | Adds avatars to comment author names. |
| WP_Posts_List_Table::column_title() wp-admin/includes/class-wp-posts-list-table.php | Handles the title column output. |
| WP_MS_Users_List_Table::column_username() wp-admin/includes/class-wp-ms-users-list-table.php | Handles the username column output. |
| _wp_dashboard_recent_comments_row() wp-admin/includes/dashboard.php | Outputs a row for the Recent Comments widget. |
| WP_Users_List_Table::single_row() wp-admin/includes/class-wp-users-list-table.php | Generate HTML for a single row on the users.php admin panel. |
| _admin_notice_post_locked() wp-admin/includes/post.php | Outputs the HTML for the notice to say that someone else is editing or has taken over editing of this post. |
| wp_prepare_revisions_for_js() wp-admin/includes/revision.php | Prepare revisions for JavaScript. |
| floated_admin_avatar() wp-admin/includes/comment.php | Adds avatars to relevant places in admin. |
| wp_admin_bar_my_account_item() wp-includes/admin-bar.php | Adds the “My Account” item. |
| wp_admin_bar_my_account_menu() wp-includes/admin-bar.php | Adds the “My Account” submenu items. |
| wp_post_revision_title_expanded() wp-includes/post-template.php | Retrieves formatted date timestamp of a revision (linked to that revisions’s page). |
| Walker_Comment::comment() wp-includes/class-walker-comment.php | Outputs a single comment. |
| Walker_Comment::html5_comment() wp-includes/class-walker-comment.php | Outputs a comment in the HTML5 format. |
Changelog
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/get_avatar