Установка кастомного изображения как аватара в WordPress

Установка кастомного изображения в качестве аватара по умолчанию

В этой статье мы рассмотрим, как установить кастомное изображение в качестве аватара по умолчанию в WordPress. Существует несколько способов сделать это, и ниже я приведу наиболее подходящие варианты в зависимости от конкретной ситуации.

Сервис Gravatar не слишком популярен, особенно среди русскоязычных пользователей интернета. Поэтому многие комментарии остаются без аватаров. В таких случаях, чтобы заменить стандартные аватары на что-то более интересное, можно настроить динамические аватары (например, различные чудовища) в настройках WordPress.

Но иногда необходимо задать уникальный аватар по умолчанию для "брендинга" вашего сайта. В этой статье мы рассмотрим именно такие ситуации.

Обратите внимание, что установленное изображение по умолчанию будет отображаться только в том случае, если у пользователя нет аватара. В противном случае могут возникнуть недоразумения при тестировании.

Вариант 1: Добавление настройки для аватара по умолчанию в админ-панели

Ниже приведён код, который добавляет дополнительную опцию для выбора аватара по умолчанию в админ-панели, в разделе настроек обсуждений.

## Добавляет еще одну опцию аватара по умолчанию в настройки обсуждения
## Файл аватара '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;
}

В результате мы получаем возможность выбора нового аватара по умолчанию в админ-панели.

Настройки аватара по умолчанию

Примечание: Чтобы узнать, какой аватар по умолчанию выбран на данный момент, можно использовать функцию get_option('avatar_default').

Недостатком этого метода является то, что необходимо не только вставить код, но и "зайти" в админ-панель, чтобы активировать аватар по умолчанию. Этот подход может быть неприемлем, если требуется строго установить аватар, который не должен меняться.

Вариант 2: Установка аватара по умолчанию без возможности изменения

Этот вариант устанавливает аватар по умолчанию сразу после вставки кода и не позволяет изменять эту настройку в админ-панели.

Хук учитывает параметр по умолчанию, указанный в функциях вывода или получения аватара. Например, если функция get_avatar() вызывается с параметром по умолчанию, будет установлен аватар, указанный в этом параметре, а не тот, что задан в хуке.

## Устанавливает аватар по умолчанию
## Файл аватара 'def-avatar.jpg' необходимо разместить в папке 'img' вашей темы
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' ); // ускоряем
    }

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

    return $args;
}

Вариант 3: Указание ссылки на аватар по умолчанию при вызове функции

Это, возможно, наименее гибкий вариант. Я не припоминаю, чтобы когда-либо использовал его. Однако он может быть полезен в определённых ситуациях.

Существует три функции, с помощью которых можно получить аватар или его данные:

  • get_avatar() - получает HTML-код <img> аватара комментатора.
  • get_avatar_data() - получает массив данных об аватаре.
  • get_avatar_url() - получает URL аватара, основываясь на указанном email, ID или объекте пользователя.

Во всех этих функциях можно указать параметр по умолчанию и тем самым задать URL для аватара по умолчанию. Пример использования для каждой функции:

echo get_avatar( '[email protected]', 48, 'http://example.com/default-avatar.png' );

$ava_data = get_avatar_data( '[email protected]', array(
    'size' => 48,
    'default' => 'http://example.com/default-avatar.png',
) );

echo $ava_data['url'];

$url = get_avatar_url( '[email protected]', [
    'size' => 48,
    'default' => 'http://example.com/default-avatar.png',
] );

echo $url;

Плагины для работы с аватарами в WordPress

Существует несколько полезных плагинов, которые помогут вам управлять аватарами:

  • Avatar Manager — добавляет поле загрузки аватара в профиль, позволяя каждому пользователю установить свой аватар без использования сервиса Gravatar. Аватар отображается с помощью функци�� get_avatar().
  • Basic User Avatars — добавляет возможность загружать аватары в профиле пользователя. Поддерживает загрузки на фронт-энде и совместим с bbPress.
  • WP First Letter Avatar — устанавливает первую букву имени автора в качестве аватара. Поддерживает кириллицу, латиницу и цифры.

Я не пробовал эти плагины в действии и не смог их тщательно оценить, поэтому не могу комментировать их качество.

Leave a Reply

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