Установка кастомного изображения в качестве аватара по умолчанию
В этой статье мы рассмотрим, как установить кастомное изображение в качестве аватара по умолчанию в 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 — устанавливает первую букву имени автора в качестве аватара. Поддерживает кириллицу, латиницу и цифры.
Я не пробовал эти плагины в действии и не смог их тщательно оценить, поэтому не могу комментировать их качество.