Использование функции get_avatar() в WordPress: руководство.

Функция get_avatar() │ WP 2.5.0

Функция get_avatar() позволяет получить HTML-код для изображения/avatar пользователя, который либо авторизован, либо указал свой адрес электронной почты при комментировании. Эта функция чаще всего используется в комментариях.

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

  • Функция используется в цикле комментариев, и для ее корректной работы требуется указать первый параметр.
  • Функция допускает замену — разработчики плагинов, желающие изменить вывод, могут использовать фильтр get_avatar.

Понятно о "плагиновых" функциях

Плагиновые функции обрабатываются только после того, как все плагины загружены. Если вы хотите использовать get_avatar() в коде плагина, вы должны вызывать ее на хуке plugins_loaded или позже, например, на хуке init.

Замена функции

Если вы создадите функцию с тем же названием в вашем плагине (обязательном или обычном), она заменит оригинальную функцию get_avatar().

Применение функции

Функция get_avatar() имеет следующий вид:

get_avatar( $id_or_email, $size, $default, $alt, $args );

Параметры функции

  • $id_or_email (mixed) (обязательный)
    ID пользователя или адрес электронной почты, по которому нужно получить аватар. Также может принимать объекты WP_User, WP_Post, WP_Comment или md5-хэш gravatar.

    В большинстве случаев используется глобальная переменная $comment, которая передается в этот параметр. Если все равно не работает (например, возникает ошибка), можно указать адрес электронной почты комментатора:

    get_the_author_meta('user_email');
  • $size (int)
    Высота и ширина изображения аватара (в пикселях). По умолчанию: 96.

  • $default (string)
    URL для изображения по умолчанию, если у пользователя нет gravatar. Также принимает:

    • 404 — вернет ошибку 404 вместо изображения по умолчанию.
    • retro — пиксельное изображение:
      https://1.gravatar.com/avatar/4b508f04b661ba693130539bd29f5c0d?s=16&d=retro&r=g
    • monsterid — изображение монстра.
    • wavatar — карикатурное лицо.
    • identicon — "пэчворк".
    • mystery, 'mm' или 'mysteryman' — з��гадочный человек.
    • blank — прозрачный GIF.
    • gravatar_default — логотип Gravatar.

    По умолчанию: значение опции 'avatar_default', с запасным вариантом 'mystery'.

  • $alt (string)
    Текст для атрибута alt в теге <img>. По умолчанию: ''.

  • $args (array)
    Дополнительные параметры для получения аватара, такие как:

    • $height (int) — высота аватара в пикселях. По умолчанию: $size.
    • $width (int) — ширина аватара в пикселях. По умолчанию: $size.
    • $force_default (true/false) — всегда показывать изображение по умолчанию, никогда не показывая Gravatar. По умолчанию: false.
    • $rating (string) — максимальный допустимый рейтинг аватаров. Принимает значения 'G', 'PG', 'R' и 'X'.
    • $scheme (string) — URL-схема, которую следует использовать.
    • $class (array/string) — массив или строка дополнительных классов для добавления в элемент <img>.
    • $force_display (true/false) — всегда показывать аватар, игнорируя опцию show_avatars.
    • $extra_attr (string) — HTML-атрибуты для вставки в элемент IMG. Не обрабатываются.

Возврат значения

Возвращает строку с тегом <img> для аватара пользователя или false в случае ошибки. Если у пользователя нет аватара, возвращается изображение по умолчанию (не false).

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

Пример #1: Добавление нового изображения по умолчанию

Этот код добавляет новый вариант аватара по умолчанию на страницу настроек дискуссий. Выбранный аватар сохраняется в опции avatar_default.

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

В результате мы получим новый вариант аватара в настройках.

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

Пример #3: Добавление стиля к аватару

user_email, 30, '', '', array('class'=>'pull-left', 'extra_attr'=>'style="margin: -4px 7px;"') ); ?>

Вывод:

Пример #4: Настройка аватара по умолчанию

Чтобы автоматически установить аватар по умолчанию для всех функций аватара, используйте следующий код:

add_filter( 'pre_get_avatar_data', 'replace_default_avatar' );
function replace_default_avatar( $args ){
    static $defava; 
    if( $defava === null ) $defava = get_option( 'avatar_default', 'mystery' );

    if( ! $args['default'] || $defava == $args['default'] ){
        $args['default'] = get_stylesheet_directory_uri() . '/img/def-avatar.jpg';
    }

    return $args;
}

Пример #5: Вывод аватара текущего комментатора

Вывод:

История изменений

  • С 2.5.0 — введена функция.
  • С 4.2.0 — добавлен параметр $args.
  • С 5.5.0 — добавлен аргумент загрузки.
  • С 6.1.0 — добавлен аргумент декодирования.
  • С 6.3.0 — добавлен аргумент приоритета загрузки.

Теперь у вас есть полное руководство по использованию функции get_avatar(), чтобы управлять аватарами пользователей на вашем сайте WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *