функция
since 2.5.0
get_avatar()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
get_avatar( mixed $id_or_email, int $size = 96, string $default_value = '', string $alt = '', array $args = null ): string|false
Описание
Получает тег `` аватара для пользователя, адреса электронной почты, MD5-хеша, комментария или записи.
Параметры
$id_or_email
mixed
обязательный
Аватар, который нужно получить. Принимает идентификатор пользователя, MD5-хеш Gravatar, email пользователя, объект WP_User, объект WP_Post или объект WP_Comment.
$size
int
необязательный
= 96
Высота и ширина аватара в пикселях.
$default_value
string
необязательный
= ''
URL изображения по умолчанию или тип изображения по умолчанию. Принимает:
'404' (вернуть ошибку 404 вместо изображения по умолчанию)
'retro' (пиксельное лицо в стиле 8-битных аркад)
'robohash' (робот)
'monsterid' (монстр)
'wavatar' (мультяшное лицо)
'identicon' («лоскутное одеяло», геометрический узор)
'initials' (аватар на основе инициалов с цветом фона)
'color' (сгенерированный цвет фона)
'mystery', 'mm' или 'mysteryman' (человек-загадка)
'blank' (прозрачный GIF)
'gravatar_default' (логотип Gravatar). Значение по умолчанию берётся из опции 'avatar_default', с запасным вариантом 'mystery'.
$alt
string
необязательный
= ''
Альтернативный текст для использования в теге изображения аватара.
$args
array
необязательный
= null
Дополнительные аргументы для получения аватара.
height intВысота отображаемого аватара в пикселях. Значение по умолчанию — $size.
width intШирина отображаемого аватара в пикселях. Значение по умолчанию — $size.
force_default boolВсегда ли показывать изображение по умолчанию вместо Gravatar.
Значение по умолчанию — false.
rating stringДо какого рейтинга показывать аватары. Принимает:
'G' (подходит для любой аудитории)
'PG' (возможно оскорбительно, обычно для аудитории от 13 лет)
'R' (предназначено для взрослой аудитории старше 17 лет)
'X' (ещё более взрослое, чем указанное выше). Значение по умолчанию берётся из опции 'avatar_rating'.
scheme stringИспользуемая схема URL. Допустимые значения см. в set_url_scheme().
class array|stringМассив или строка дополнительных классов, добавляемых к элементу img.
force_display boolВсегда ли показывать аватар — игнорирует опцию show_avatars.
Значение по умолчанию — false.
loading stringЗначение атрибута loading.
fetchpriority stringЗначение атрибута fetchpriority.
decoding stringЗначение атрибута decoding.
extra_attr stringHTML-атрибуты для вставки в элемент IMG. Не очищается.
Возвращаемое значение
string|false
Исходный код
wp-includes/pluggable.php:3193
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,
'fetchpriority' => null,
'decoding' => null,
'extra_attr' => '',
);
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'];
}
// Update args with loading optimized attributes.
$loading_optimization_attr = wp_get_loading_optimization_attributes( 'img', $args, 'get_avatar' );
$args = array_merge( $args, $loading_optimization_attr );
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 '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`, `fetchpriority`, 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['fetchpriority'], array( 'high', 'low', 'auto' ), true )
&& ! preg_match( '/\bfetchpriority\s*=/', $extra_attr )
) {
if ( ! empty( $extra_attr ) ) {
$extra_attr .= ' ';
}
$extra_attr .= "fetchpriority='{$args['fetchpriority']}'";
}
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 ) . ' x',
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 Added the `$args` parameter.
*
* @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 Height and width of the avatar in pixels.
* @param string $default_value 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)
* @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 );
}
История изменений
| Версия | Описание |
|---|---|
| 6.3.0 | Added the fetchpriority argument. |
| 6.1.0 | Added the decoding argument. |
| 5.5.0 | Added the loading argument. |
| 4.2.0 | Added the optional $args parameter. |
| 2.5.0 | Introduced. |

