Вывод рандомных аватаров для комментариев WordPress
По умолчанию в WordPress настроен сервис Gravatar, который может подтягивать фото автора комментатора по его электронной почте. Если адрес электронной почты не указан в комментариях и пользователь был не зарегистрирован в сервисе gravatar, то выводится стандартная не очень красивая иконка gravatar.
Какие есть альтернативные варианты настройки аватаров:
- В WordPress можно настроить статические аватары посетителей, которые будут использованы во всех добавленных анонимными пользователями комментариях.
- Также можно добавить сгенерированные аватары которые у каждого пользователя они будут разные.
Настройки стандартных аватаров можно найти в разделе Настройки > Обсуждение. Вы также можете увидеть эти 2 вида аватаров на изображении ниже.
В этом уроке я хотел показать что-то похожее на стандартные сгенерированные, но более интересные. Для изменения стандартных аватаров нужно воспользоваться функцией get_avatar() существует 2 основных способа.
- Вы можете добавить фильтр, к параметру avatar_defaults и изменить массив аватаров, чтобы получить новый параметр для «статического» для параметра в Настройках Обсуждения.
- Вы можете добавить фильтр для pre_option_avatar_default и возвращать URL по умолчанию.
Я буду использовать второй вариант, потому возвращаемый URL будет случайно выбран из набора. Пример фильтра я выведу ниже:
1 2 3 4 5 6 |
add_filter( 'pre_option_avatar_default', 'chameleon_default_avatar' ); function chameleon_default_avatar ( $value ) { return get_template_directory_uri() . '/new_avatars/cham_avatar'.rand( 0 , 2 ).'.jpg'; } |
Этот фильтр изменит стандартный поток WordPress и вернет пользователю случайный аватар. При комментировании аватар будет постоянно меняться и даже при перезагрузке страницы, но это уже не будут стандартные комментарии. Файлы аватаров лежат в теме сайта в папке new_avatars и выбираются рандомно.
Вот так аватарки выглядят на моем тестовом сайте.
Это простейший пример реализации показывает как можно работать с аватарами на сайте и фильтром ‘pre_option_avatar_default’ в WordPress.

/*

- Базовый курс по веб-дизайну;
- Верстка сайтов;
- Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
- Разработка сайтов на PHP.