WordPress как на ладони

get_avatar_url()WP 4.2.0

Получает ссылку на аватар, по переданному email, ID или объекту пользователя. Также можно передать объект поста или комментария.

Эта функция не проверят если ли реально аватар, она просто собирает URL на сервис gravatar.com. Чтобы проверить если ли у email аватар, вам нужно обработать полученный URL отдельно. Нужно указать в default 404, затем получить URL и попробовать получить картинку по этому URL через get_headers(). Если ответ вернет 404, то аватарки у email нет. См. примеры.

Смотрите также функцию get_avatar().

Работает на основе: get_avatar_data()
Основа для: get_avatar()
1 раз — 0.00008 сек (очень быстро) | 50000 раз — 1.67 сек (быстро) | PHP 7.0.8, WP 4.5.3

Хуков нет.

Возвращает

Строку|false. УРЛ аватара (возвращается в 99% случаев). false, если в работе функции что-то пошло не так и не удалось собрать URL.

Использование

get_avatar_url( $id_or_email, $args );
$id_or_email(смешанный) (обязательный)

Идентификатор по которому будет определяться аватар. Может быть:

  • ID пользователя;
  • email пользователя;
  • gravatar md5 хэш (md5 хэш мыла);
  • WP_User объект;
  • WP_Post объект - получит аватар автора поста;
  • WP_Comment объект - получит аватар комментатора.
$args(массив)

Параметры получаемого аватара. По умолчанию:

  • size(число)
    Высота и ширина аватара в пикселях.
    По умолчанию: 96
  • default(строка)
    УРЛ на картинку по умолчанию - если не удалось получить аватар. Вместо УРЛ можно указать следующие значения:

    • 404 - вернет 404 вместо дефолтной картинки.
    • retro - пиксельная картинка 8bit: ,
    • monsterid - монстрик: ,
    • wavatar - мульт лицо: ,
    • indenticon - картинка-узор: ,
    • mystery, 'mm' или 'mysterman' - неизвестный человек: ,
    • blank - прозрачная GIF картинка,
    • gravatar_default - логотип Gravatar: .

    По умолчанию: значение опции 'avatar_default' или 'mystery'

  • force_default(логический)
    Ставим true, если нужно всегда показывать дефолтную картинку и не показывать аватары совсем.
    По умолчанию: false

  • rating(строка)
    Максимально допустимый рейтинг выводимой аватарки. Может быть:

    • G — Подходит для любой аудитории;
    • PG — Может содержать оскорбительные элементы, обычно для аудитории старше 13 лет;
    • R — Рассчитан на взрослую аудиторию старше 17 лет;
    • X — Для ещё более зрелой аудитории;

    По умолчанию: значение опции 'avatar_rating'

  • scheme(строка)
    Схема УРЛ, которая будет использоваться. Может быть: 'http', 'https', 'login', 'login_post', 'admin', or 'relative'. Подробнее смотрите функцию set_url_scheme().
    По умолчанию: null

  • processed_args(массив)
    Дополнительные опции для передачи. При фильтрации и возврате данных функцией get_avatar_data() эти параметры будут добавлены в возвращаемый массив.
    По умолчанию: null

  • extra_attr(строка)
    HTML атрибуты для добавления к элементу IMG. Не очищаются.
    По умолчанию: ''

По умолчанию: null

Примеры

1

#1 Проверка есть ли аватар у email

Чтобы проверить если ли у email аватар, нужно обработать URL граватара отдельно. В параметре default указать 404, затем получить URL и попробовать получить картинку по этому URL через get_headers(). Если ответ вернет 404, то аватарки у email нет.

// проверка есть ли аватар у email
function has_gravatar( $email ){

	$gravatar_url = get_avatar_url( $email, 'default=404' );
	$headers = @ get_headers( $gravatar_url  );

	return ! preg_match('|404|', $headers[0] );
}

var_dump( has_gravatar('has_ava@bk.ru') ); // true
var_dump( has_gravatar('no__ava@bk.ru') ); // false

// время выполнения от 0,1 до 1 секунды... очень долго - это HTTP запрос...

Такая проверка запроса будет сильно тормозить загрузку сайта, но если очень нужно, то запрос можно куда-нибудь кэшировать, например в set_transient()...

0

#2 Получим УРЛ аватарки по email юзера

$url = get_avatar_url( 'asd@dsf.df', array(
	'size' => 48,
	'default'=>'identicon',
) );

// http://1.gravatar.com/avatar/4b508f04b661ba693130539bd29f5c0d?s=48&d=identicon&r=g
0

#3 Получим УРЛ аватарки текущего пользователя

$url = get_avatar_url( wp_get_current_user(), array(
	'size' => 48,
	'default'=>'wavatar',
) );

// http://1.gravatar.com/avatar/155e695ab2251ee3c482c1e3e690683b?s=48&d=identicon&r=g
0

#4 Выведем картинку-аватарку автора текущей статьи

global $post;
$url = get_avatar_url( $post, "size=24&default=monsterid");
$img = '<img alt="" src="'. $url .'">';
echo $img;

// <img alt="" src="http://1.gravatar.com/avatar/155e695ab2251ee3c482c1e3e690683b?s=24&d=wavatar&r=g">

Список изменений

С версии 4.2.0 Введена.

Код get_avatar_url() WP 6.5.2

function get_avatar_url( $id_or_email, $args = null ) {
	$args = get_avatar_data( $id_or_email, $args );
	return $args['url'];
}
9 комментариев
    Войти