get_avatar_url

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

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

Смотрите также функцию 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 Получим УРЛ аватарки по 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()

Код из


wp-includes/link-template.php

WP 4.7.2

<?php
function get_avatar_url( $id_or_email, $args = null ) {
	$args = get_avatar_data( $id_or_email, $args );
	return $args['url'];
}