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()

Хуків немає.

Повертає

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

Використання

get_avatar_url($id_or_email, $args);
$id_or_email
(змішаний) (обов’язковий)

Ідентифікатор за яким визначатиметься аватар. Може бути:

$args
(масив)

Параметри отримуваного аватара. За замовчуванням:

Типово: null

Приклади

#1 Отримаємо УРЛ аватарки по email користувача

$url = get_avatar_url( '[email protected]', array(
	'size' => 48,
	'default'=>'identicon',
)));

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

#2 Отримаємо УРЛ аватарки поточного користувача

$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

#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">
0

#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('[email protected]') ); // true
var_dump( has_gravatar('[email protected]') ); // false

// час виконання від 0,1 до 1 секунди... дуже довго - це запит HTTP...

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

список змін

З версії 4.2.0Введено.

Код get_avatar_url() WP 6.0.2

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *