Рандомные аватарки в WordPress для комментаторов

Рандомные аватарки в WordPress
Рандомные аватарки в WordPress

Традиционно WordPress предлагает несколько способов добавления пользовательских аватарок:

  1. С помощью сторонних сервисов типа Gravatar
  2. Установить рандомную аватарку из своей коллекции с помощью плагинов
  3. Использовать безликий серый Noname аватар
  4. Вообще не использовать аватары пользователей на сайте

Все эти способы довольно скучны и не добавляют интереса к комментариям.

Заинтересовавшись темой я решил как-то упорядочить найденные способы добавления пользовательских рандомных аватарок для WordPress.

И здесь есть 2 пути решения задачи

  1. С помощью плагинов
  2. С помощью добавления кода

Добавление пользовательских аватаров с помощью плагина

Здесь все просто: скачиваем первый попавшийся плагин для пользовательских аватаров, тестируем, включаем или удаляем как непригодный.

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

Мне понравился плагин Аvatar Manager

Довольно простой плагин с минимумом настроек. Позволяет загружать аватары, умеет ограничивать пользователей по уровню доступа.

avatar-manager

Настройки плагина Аvatar Manager находятся в разделе настроек WordPress -> Обсуждение.

Но плагин полностью исключает возможность использования сторонних сервисов типа Gravatar, так что совместить собственные аватарки со сторонними не получится.

Возможно есть и другие плагины, позволяющие это сделать, но на мой взгляд есть более интересные решения.

Добавление пользовательских аватаров с помощью добавления кода

Мне попалось несколько хуков для решения этой задачи (ссылки в конце поста), разной степени глючности и работоспособности.

В итоге я взял известный хук chameleon_default_avatar() и немного его подправил следующим образом:

//добавляем рандомные аватары юзеров
add_filter( 'pre_option_avatar_default', 'chameleon_default_avatar' );
function chameleon_default_avatar ( $value )
{
return get_template_directory_uri() . '/avatar/'.rand( 1 , 300 ).'.jpg';
}

Пошаговая инструкция к добавлению кода пользовательских аватаров:

  • Скачиваем пак аватаров, например отсюда, или рисуем свои
  • Создаем папку «avatar» в папке дочерней темы WordPress
  • Закачиваем аватары в эту папку
  • В консоли WordPress, заходим в раздел «Редактор тем» и открываем на редактирование файл function.php и в самом конце перед закрывающим ?> вставляем вышеуказанный код. Сохраняем файл.
Еще по теме:  Удаляем микроразметку Shema.org из плагина All in SEO Pack

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

Важный момент!


Пользовательские аватары должны именоваться от 1.jpg до 300.jpg. Если у вас аватаров меньше или больше то в коде заменяем фрагмент rand( 1 , 300 ) на то количество аватаров, которое у вас есть на самом деле. Например если у вас 50 аватаров фрагмент должен быть таким : rand( 1 , 50 ).

Можно и не использовать дочернюю тему и сделать все в обычной, но тогда при следующем обновлении все наши изменения исчезнут.

Источники:

Статья о хуке с аватаром (англ)
Автор использует функцию admin_url() и добавляет аватары в директорию wp_admin/images/cham_avatars folder что приводит к тому, что при обновлении WordPress удаляется директория с аватарами. В целом рабочее решение.

Еще один вариант с аналогичным хуком (англ) 

Наш украинский коллега предлагает такое решение.


На мой взгляд этот хук требует доработки. Логичнее было бы поместить директорию /avatar/ c пользовательскими аватарами в папку /wp-content/uploads/ и получать URL изображения через функцию wp_get_upload_dir() или wp_upload_dir()

Впрочем предложенный вариант тоже вполне работоспособен и применен.
Удачи!

Comments on Рандомные аватарки в WordPress для комментаторов