Вывод аватара комментатора на сайте

07.02.2019
get_avatar()

Получает html код аватара (<img>) комментатора, если пользователь авторизирован или указал email при комментировании.

Используется внутри Цикла комментариев или ему обязательно нужно передать первый параметр!

Если нужно воздействовать на эту функцию, то используйте фильтр get_avatar.

Возвращает строку/false. HTML тег . false если не удалось отправить запрос. Если нет аватара, но запрос отправился, то вернет аватарку по дефолту – не false.

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

<?php echo get_avatar( $id_or_email, $size, $default, $alt, $args ); ?>

Примеры использования

#1. Выведем Аватар текущего комментатора:

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

Получим:

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

#2 Вывод аватара автора текущего поста

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

#3 Добавление атрибута stylе

Параметр ‘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;">

#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;
}

#5 Аватар по умолчанию через хук

Если для прошлого варианта, нужно добавить хук, потом зайти в настройки и выбрать дефолтный аватар, то этот вариант установит аватарку по дефолту сразу же…

Этот вариант устанавливает аватар по умолчанию «налету», для всех функций: get_avatar(), get_avatar_url() и 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;
}

Рекомендую к прочтению:

Оставить комментарий