WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

get_avatar_url() WP 4.2.0

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

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.

Эта функция не проверят если ли реально аватар, она просто собирает 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 Получим УРЛ аватарки по 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

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

$url = get_avatar_url( $GLOBALS['current_user'], array(
	'size' => 48,
	'default'=>'wavatar',
) );

// вернет: http://1.gravatar.com/avatar/155e695ab2251ee3c482c1e3e690683b?s=48&d=identicon&r=g

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

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 Проверка есть ли аватар у 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()...

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

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

Код get_avatar_url() WP 5.8.2

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

avatar (аватар)

Комментарии

9 комментов
    Войти