get_avatar() WP 2.5.0

Отримує html код аватара ( <img>) коментатора, якщо користувач авторизований або вказав email під час коментування. Зазвичай використовується у розділі коментарів.

Використовується всередині циклу коментарів або обов’язково потрібно передати перший параметр!

Використовуйте фільтр get_avatar , коли потрібно змінити результат функції.

Це init .

Заміна функції (перевизначення) — у плагіні можна створити функцію з такою самою назвою, тоді вона замінить поточну функцію.

Працює на основі:
get_avatar_url() ,
get_avatar_data()
1 раз – 0.000196 сек
(швидко) | 50000 разів – 4.98 сек
(швидко) |
PHP 7.1.0, WP 4.7.1

Хуки з функції

Повертає

Строку|false. HTML тег <img>. false якщо не вдалося надіслати запит. Якщо немає аватара, але запит відправився, то поверне аватарку дефолтом – не false.

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

get_avatar($id_or_email, $size, $default, $alt, $args);
$id_or_email
(рядок/об’єкт/число) (обов’язковий)

ID або email користувача, для якого необхідно отримати аватар. Також можна вказати об’єкти: WP_User , WP_Post , WP_Comment або md5 хеш gravatar.

У більшості шаблонів у цьому параметрі можна вказати глобальну змінну $comment. Якщо функція не працює (викликає помилку), то запишіть у неї email коментатора, наприклад:

get_avatar('[email protected]');
$size
(число)
Розмір картинки. Зазначене число стане шириною та висотою в пікселях.


Типово: 96
$default
(рядок)

УРЛ на зображення за замовчуванням, для користувачів, які не мають аватарки в сервісі gravatar.

Також приймає:

  • 404– Поверне 404 замість дефолтної картинки.
  • retro– піксельна картинка 8bit:
  • monsterid– монстрик:
  • wavatar– Мульт обличчя:
  • indenticon– картинка-візерунок:
  • mystery, ‘mm’ або ‘mysterman’ – невідома людина:
  • blank– прозора GIF картинка.
  • gravatar_default– логотип Gravatar:

За промовчанням: ” (значення опції ‘avatar_default’ або ‘mystery’)

$alt
(рядок)
Текст для атрибуту ‘alt’ тега
<img> .


За замовчуванням: ”
$args
(масив)

Додаткові аргументи для отримання аватара:

  • height– Число. Висота у пікселях. Типово $size .
  • width– Число. Ширина у пікселях. Типово $size .
  • force_default– логічний. Завжди показувати дефолтну картинку і ніколи не аватар.
  • rating– Рядок. Мінімальний рейтинг аватара для відображення. Можливо: ‘G’, ‘PG’, ‘R’, ‘X’. За промовчанням значення опції ‘avatar_rating’.
  • scheme– Рядок. Схема URL, яка буде використовуватися. Дивіться set_url_scheme() .
  • class– Масив/рядок. Додаткові класи для тега img.
  • force_display– логічний. Завжди показувати аватар? Ігнорує опцію show_avatars.
  • extra_attr– Рядок. Додаткові HTML атрибути для тега IMG. Перед виведенням на екран не очищаються.
  • loading– Рядок lazy.

Типово: null

Приклади

0

#1 Виведемо Аватар поточного коментатора:

<?php echo get_avatar($ comment, 32); ?>

Отримаємо:

<img alt='' src='http://0.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=32' class='avatar avatar-32 photo avatar-default' height='32' width='32' / >
0

#2 Висновок аватара автора поточного посту

<?php echo get_avatar( get_the_author_meta('user_email'), 32); ?>
0

#3 Додавання атрибуту style

Параметр ‘extra_attr’ дозволяє додавати будь-які атрибути тега IMG:

<?php echo get_avatar( $current_user->user_email, 30, '', '', array('class'=>'pull-left', 'extra_attr'=>'style="margin: -4px 7px;"' ))); ?>

Отримаємо:

<img alt="" src="http://1.gravatar.com/avatar/155e695ab2987ee3c482c1e3e690683b?s=30&d=mm&r=g"
	class="avatar avatar-30 photo pull-left"
	height="30" width="30"
	style="margin: -4px 7px;"
>
0

#4 Варіант аватарки за замовчуванням у налаштуваннях обговорення

Це код додавання ще однієї картинки (опції) у налаштуваннях обговорення, яку можна вибрати як аватарку за умовчанням. Така аватарка зберігається в опції get_option(‘avatar_default’) .

## Додає ще один варіант аватарки за умовчанням у налаштування обговорення
## Файл аватарки 'def-avatar.jpg' потрібно залити в папку теми 'img'
add_filter( 'avatar_defaults', 'add_default_avatar_option');
function add_default_avatar_option( $avatars ){
	$url = get_stylesheet_directory_uri() . '/img/def-avatar.jpg';
	$avatars[ $url ] = 'Аватар сайту';
	return $avatars;
}

В результаті отримаємо таку додаткову опцію:

0

Аватар за замовчуванням

Якщо для минулого варіанту потрібно додати хук, потім зайти в налаштування і вибрати дефолтний аватар, то цей варіант встановить аватарку по дефолту відразу ж…

Цей варіант встановлює аватар за умовчанням «нальоту», для функцій: get_avatar_data() . Дефолтний аватар буде встановлено лише якщо функції не вказано дефолтний аватар, тобто. не встановлено параметр ‘default’.

## Встановлює аватар за замовчуванням
## Файл аватарки 'def-avatar.jpg' потрібно залити в папку теми 'img'
add_filter( 'pre_get_avatar_data', 'replace_default_avatar');
function replace_default_avatar( $args ){
	// адмінка та сторінка обговорення, де налаштовується ава за замовчуванням.
	// if( is_admin() && get_current_screen()->base === 'options-discussion' ) return $args;

	static $defava; if( $defava === null ) $defava = get_option( 'avatar_default', 'mystery' ); // прискоримося

	// Якщо використовується ава за умовчанням, щоб працював параметр 'default' якщо він встановлений для функцій аватарок
	if( ! $args['default'] || $defava == $args['default'] ){
		$args['default'] = get_stylesheet_directory_uri() . '/img/def-avatar.jpg';
	}

	return $args;
}

список змін

З версії 2.5.0Введено.
З версії 4.2.0Optional $args parameter added.

get avatar WP 6.0.2

function get_avatar( $id_or_email, $size = 96, $default = '', $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,
		'extra_attr' => '',
	);

	if ( wp_lazy_loading_enabled( 'img', 'get_avatar' ) ) {
		$defaults['loading'] = wp_get_loading_attr_default('get_avatar');
	}

	if ( empty( $args ) ) {
		$args = array();
	}

	$args['size'] = (int) $size;
	$args['default'] = $default;
	$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'];
	}

	if ( is_object( $id_or_email ) && isset( $id_or_email->comment_ID ) ) {
		$id_or_email = get_comment( $id_or_email );
	}

	/**
	 * Натиснувши HTML для user's avatar до returned early.
	 *
	 * Returning a non-null value will effectively short-circuit get_avatar(), passing
	 * the value through the {@see '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, або WP_Comment object.
	 * @param array $args Arguments passed to get_avatar_url(), після processing.
	 */
	$avatar = apply_filters( 'pre_get_avatar', null, $id_or_email, $args );

	if ( ! is_null( $avatar ) ) {
		/** Цей filter is documented в 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` attribute.
	$extra_attr = $args['extra_attr'];
	$loading = $args['loading'];

	if ( in_array( $loading, array( 'lazy', 'eager' ), true ) && ! preg_match( '/bloadings*=/', $extra_attr ) ) {
		if ( ! empty( $extra_attr ) ) {
			$extra_attr .= '';
		}

		$extra_attr .= "loading='{$loading}'";
	}

	$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). '2x',
		esc_attr( implode( ' ', $class ) ),
		(int) $args['height'],
		(int) $args['width'],
		$extra_attr
	);

	/**
	 * Filters HTML для user's avatar.
	 *
	 * @ Since 2.5.0
	 * @since 4.2.0 The `$args` parameter was added.
	 *
	 * @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, або WP_Comment object.
	 * @param int $size Square avatar width and height in pixels to retrieve.
	 * @param string $default URL for default image або default type. Accepts '404', 'retro', 'monsterid',
	 * 'wavatar', 'indenticon', 'mystery', 'mm', 'mysteryman', 'blank', або 'gravatar_default'.
	 * @param string $alt Додатковий текст для використання в avatar зображення зображення.
	 * @param array $args Arguments passed to get_avatar_data(), після processing.
	 */
	return apply_filters( 'get_avatar', $avatar, $id_or_email, $args['size'], $args['default'], $args['alt'], $args );
}

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

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