Как установить свой аватар в wordpress. Плагин аватарки для wordpress

Получает html код аватара () комментатора, если пользователь авторизирован или указал email при комментировании. Обычно используется в разделе комментариев.

Используется внутри Цикла комментариев или обязательно нужно передать первый параметр!

Замена функции (переопределение) - в плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.

✈ 1 раз = 0.000196с = быстро | 50000 раз = 4.98с = быстро | PHP 7.1.0, WP 4.7.1

Возвращает

Строку/false. HTML тег . false если не удалось отправить запрос. Если нет аватара, но запрос отправился, то вернет аватарку по дефолту - не false.

Использование

$id_or_email(строка/объект/число) (обязательный)

ID или email юзера, для которого нужно получить аватар. Также можно указать объекты: WP_User , WP_Post , WP_Comment или md5 хэш gravatar.

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

Get_the_author_meta("[email protected]"); $size(число) Размер картинки. Указанное число станет шириной и высотой в пикселях.
По умолчанию: 96 $default(строка)

УРЛ на картинку по умолчанию, для пользователей, которые не имеют аватарки в сервисе gravatar.

Также принимает:

По умолчанию: "" (значение опции "avatar_default" или "mystery")

$alt(строка) Текст для атрибута "alt" тега .
По умолчанию: "" $args(массив)

Дополнительные аргументы для получения аватара:

  • height - Число. Высота в пикселях. По умолчанию $size .
  • width - Число. Ширина в пикселях. По умолчанию $size .
  • force_default - Логический. Всегда показывать дефолтную картинку и никогда аватар.
  • rating - Строка. Минимальный рейтинг аватара для отображения. Может быть: "G", "PG", "R", "X". По умолчанию значение опции "avatar_rating".
  • scheme - Строка. Схема URL которая будет использоваться. Смотрите set_url_scheme() .
  • class - Массив/строка. Дополнительные классы для тега img.
  • force_display - Логический. Всегда показывать аватар? Игнорирует опцию show_avatars.
  • extra_attr - Строка. Дополнительные HTML атрибуты для тега IMG. Не очищаются перед выводом на экран.

По умолчанию: null

Примеры

#1. Выведем Аватар текущего комментатора:

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

#3 Добавление атрибута stylе

Параметр "extra_attr" позволяет добавлять любые атрибуты тега IMG:

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

#4 Вариант аватарки по умолчанию в настройки обсуждения

Это код добавления еще одной картинки (опции) в настройках обсуждения, которую можно выбрать как аватарку по умолчанию. Такая аватарка хранится в опции get_option("avatar_default") .

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

В результате получим такую дополнительную опцию:

#5 Аватар по умолчанию

Если для прошлого варианта, нужно добавить хук, потом зайти в настройки и выбрать дефолтный аватар, то этот вариант установит аватарку по дефолту сразу же...

Этот вариант устанавливает аватар по умолчанию «налету», для функций: get_avatar_url() и get_avatar_data() . Дефолтный аватар будет установлен только если в функции не указан дефолтный аватар, т.е. не установлен параметр "default".

## Устанавливает аватар по умолчанию ## Файл аватарки "def-avatar.jpg" нужно залить в папку темы "img" add_filter("pre_get_avatar_data", "replace_default_avatar"); function replace_default_avatar($args){ // админка и страница обсуждения, где настраивается ава по умолчанию... // if(is_admin() && get_current_screen()->base === "options-discussion") return $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; }

Список изменений

С версии 2.5.0 Введена.
С версии 4.2.0 Optional $args parameter added.

Код get avatar : wp-includes/pluggable.php WP 5.3.2

96, "height" => null, "width" => null, "default" => get_option("avatar_default", "mystery"), "force_default" => false, "rating" => get_option("avatar_rating"), "scheme" => null, "alt" => "", "class" => null, "force_display" => false, "extra_attr" => "",); if (empty($args)) { $args = array(); } $args["size"] = (int) $size; $args["default"] = $default; $args["alt"] = $alt; $args = wp_parse_args($args, $defaults); if (empty($args["height"])) { $args["height"] = $args["size"]; } if (empty($args["width"])) { $args["width"] = $args["size"]; } if (is_object($id_or_email) && isset($id_or_email->comment_ID)) { $id_or_email = get_comment($id_or_email); } /** * Filters whether to retrieve the avatar URL early. * * Passing a non-null value will effectively short-circuit get_avatar(), passing * the value through the {@see "get_avatar"} filter and returning early. * * @since 4.2.0 * * @param string|null $avatar HTML for the user"s avatar. Default null. * @param mixed $id_or_email The Gravatar to retrieve. Accepts a user_id, gravatar md5 hash, * user email, WP_User object, WP_Post object, or WP_Comment object. * @param array $args Arguments passed to get_avatar_url(), after processing. */ $avatar = apply_filters("pre_get_avatar", null, $id_or_email, $args); if (! is_null($avatar)) { /** This filter is documented in wp-includes/pluggable.php */ return apply_filters("get_avatar", $avatar, $id_or_email, $args["size"], $args["default"], $args["alt"], $args); } if (! $args["force_display"] && ! get_option("show_avatars")) { return false; } $url2x = get_avatar_url($id_or_email, array_merge($args, array("size" => $args["size"] * 2))); $args = get_avatar_data($id_or_email, $args); $url = $args["url"]; if (! $url || is_wp_error($url)) { return false; } $class = array("avatar", "avatar-" . (int) $args["size"], "photo"); if (! $args["found_avatar"] || $args["force_default"]) { $class = "avatar-default"; } if ($args["class"]) { if (is_array($args["class"])) { $class = array_merge($class, $args["class"]); } else { $class = $args["class"]; } } $avatar = sprintf("", esc_attr($args["alt"]), esc_url($url), esc_url($url2x) . " 2x", esc_attr(join(" ", $class)), (int) $args["height"], (int) $args["width"], $args["extra_attr"]); /** * Filters the avatar to retrieve. * * @since 2.5.0 * @since 4.2.0 The `$args` parameter was added. * * @param string $avatar tag for the user"s avatar. * @param mixed $id_or_email The Gravatar to retrieve. Accepts a user_id, gravatar md5 hash, * user email, WP_User object, WP_Post object, or WP_Comment object. * @param int $size Square avatar width and height in pixels to retrieve. * @param string $default URL for the default image or a default type. Accepts "404", "retro", "monsterid", * "wavatar", "indenticon","mystery" (or "mm", or "mysteryman"), "blank", or "gravatar_default". * Default is the value of the "avatar_default" option, with a fallback of "mystery". * @param string $alt Alternative text to use in the avatar image tag. Default empty. * @param array $args Arguments passed to get_avatar_data(), after processing. */ return apply_filters("get_avatar", $avatar, $id_or_email, $args["size"], $args["default"], $args["alt"], $args); }

Плагин Add local Avatar внедряет на станицу профиля зарегистрированного пользователя форму загрузки аватара. Для начала Вам нужно скачать этот плагин с его официальной странички или можно воспользоваться поиском через панель управления сайтом панель.

После того как Вы активируете плагин в левом меню панели управления в разделе Пользователи появится пункт «Avatar».

Настройка плагина

Смело переходим на страницу настроек «Avatar», и выполняем по порядку следующие действия:

  1. Ставим галочку напротив «Показывать аватары»
  2. В стилях аватары задаем значение «G» — показывать для любой аудитории
  3. Выбираем размер аватара который нам подходит по дизайну сайта
  4. Twitter Avatar — ставим здесь галочку, если хотим, чтобы подгружались аватары пользователей, которые зарегистрированы в Twitter
  5. Gravatar по умолчанию — выбираем одно из стандартных решений аватаров WordPress
  6. Стандартное изображение — в это поле Вы можете ввести полный путь к аватару, который будет отображаться если у пользователя нет своего (например: http://www.ваш-сайт.ком.юа/avatars/standart-ava.jpg)
  7. Использовать снимки экрана — требуется, если Вы используете скриншоты (я их не использую, поэтому галочку никогда не ставлю)
  8. Аватары в записи — заменяет тэг аватаром для этого адреса электронной почты в содержимом записи
  9. Загрузки пользователей — самый важный момент. Отмечаем галочку, тем самым позволяем пользователям загружать свои аватары, не забудьте ввести имя папки в которую вы хотите подгружать изображения. И самое главное в это же поле есть еще один чекбокс возле $_SERVER["DOCUMENT_ROOT"] method его тоже нужно отметить (эта галочка прописывает полный путь к аватарам — как мы все знаем, а кто не знает знайте что в WordPress пути к картинкам работают только полные)
  10. Обрезка рисунка — обрезает не квадратные картинки
  11. Wrap Avatars with URL — опция обрезает url к аватару (пример: http://ваш-сайт.юа/название-аватара.jpg)
  12. Ник — оглавление аватара — галочкой отметил, но какого-то эффекта не заметил
  13. В поле «прочие данные» — выбираем не отображать ссылку на автора
  14. Ну и наконец-то нажимаем долгожданную кнопочку «Обновить настройки Avatar»

В результате после обновления Вы получите вот такую ситуацию на странице:

Используем

Проверяем как всегда все на своем личном профиле, заходим в меню Пользователи -> Ваш профиль и в самом внизу обнаруживаем волшебную форму загрузки аватара, думаю объяснять не надо как ею воспользоваться.

Выводим аватар в шаблоне

Если вернемся на страницу настроек плагина, что в самом низу разработчик приводит код вызова аватара в теме. Давайте разберемся с ним.

Во-первых если Вы хотите, чтобы аватар отображался в комментариях нужно внести изменения в файл functions.php. Для начала откройте его (желательно программой Notepad++), нажмите заветную комбинация Ctrl+F и введите «avatar». После этого Вы увидите строчку:

Замените ее на:

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

Примечание: цифры 60 и 40 — это размер аватара в пикселях

Кстати если Вы хотите использовать аватары в виджете или в форме авторизации пользователей читайте статьи

На первый взгляд это отличный плагин, однако есть существенное НО — это корректировка внутреннего кода темы и дикая сложность его внедрения на страницу профиля (это когда Вы на своем блоге хотите, чтобы пользователь корректировал свой профиль на отдельной странице встроенной в дизайн сайта, а не из админ панели — хотя если Вы без предрассудков, то это что Вам нужно) и то что загрузить картинку можно только маленького размера.

А чтобы предрассудков вообще не возникало попробуйте плагин — на мой взгляд самое стоящее решение в этом вопросе.

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

Сервис 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; }

В результате получим:

Заметка: какой на текущий момент выбран аватар по умолчанию можно узнать получив значение опции "avatar_default" - get_option("avatar_default") .

Недостаток этого метода в том, что нельзя просто установить код, а нужно еще «сходить» в админку и включить аватарку по умолчанию. Такой подход может быть просто неприемлем, когда нужно жестко выставить аву, чтобы её нельзя было поменять... Или, когда нужно, чтобы указанная ава была по умолчанию всегда, независимо от того кто и что там поставил в настройках.

Специально для таких случаев я написал второй вариант. А оказалось это кстати, не так просто как я ожидал, но это никому не нужная лирика, поэтому её пропустим...

Вариант 2: указать аватарку по умолчанию «на лету», через фильтр

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

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

## Устанавливает аватар по умолчанию ## Файл аватарки "def-avatar.jpg" нужно поместить в папку темы "img" add_filter("pre_get_avatar_data", "replace_default_avatar"); function replace_default_avatar($args){ // админка и страница обсуждения, где настраивается ава по умолчанию... // if(is_admin() && get_current_screen()->base === "options-discussion") return $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 код аватара комментатора.
  • get_avatar_data() - Получает массив данных об аватаре.
  • get_avatar_url() - Получает URL аватарки по переданному email, ID или объекту пользователя.

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

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]", array("size" => 48, "default" => "http://example.com/default-avatar.png",)); echo $url;

Продолжая тематику реализации хочу рассмотреть один интересный плагин, который поможет разнообразить ленту комментариев блога. Далеко не все пользователи зарегистрированы в Gravatar, поэтому на сайте время от времени попадаются стандартные картинки-заглушки. Вы можете выбрать в настройках системы один из вариантов автоматической подстановки иконок (MonsterID, Wavatar, Identicon) или же на свое изображение. С одной стороны добавляете оригинальности списку комментариев, с другой — все это не имеет никакого отношения к конкретному пользователю, т.к. генерируется случайным образом. Выход есть, и это плагин WP First Letter Avatar.

Основная цель модуля — автоматическая установка оригинальных аватаров для вордпресс пользователей без подключения сервиса Gravatar (по сути, его альтернатива). При создании соответствующих картинок используется первая или любая буква из имени юзера + добавляется разноцветный фон. В итоге вы получаете что-то типа этого:

В WP First Letter Avatar есть множество разных настроек и фишек, видно, что автор проработал все до мелочей. Модуль добавит немного ярких красок в ваш блог, а также привлечет внимание посетителей и, возможно, подтолкнет их к написанию . Очевидно, что это куда более интересное решение чем базовые «заглушки», плюс картинки напрямую привязаны к личности автора.

Основные функции WP First Letter Avatar:

  • Плагин генерирует аватары в вордпресс практически для любых имен пользователей: латиницы, кириллицы, цифр и даже арабского алфавита.
  • Поддерживаются разные размеры: 48px, 96px, 128px, 256px, 512px причем модуль выбирает наиболее оптимальный вариант дабы не выводить слишком большие изображения в случаях, где достаточно минимальных 48px.
  • В архиве найдете также PSD исходники иконок по умолчанию.
  • Вы можете подправить текущие картинки (с помощью PSD макета) либо же добавить свой абсолютно новый набор. Это сделает ваш проект максимально уникальным, ведь таких аватаров для вордпресс комментариев не будет больше ни у кого.
  • Вся графика оптимизирована через сервис TinyPNG поэтому она максимально легкая.
  • Решение совместимо с bbPress и wpDiscuz. С BuddyPress используйте специальную модификацию — BuddyPress First Letter Avatar.

Установка и настройка WP First Letter Avatar

Скачать плагин либо через поиск по названию внутри админки. Очень важная деталь — для работы ему нужно как минимум PHP 5.4! Если при активации вы увидите сообщение о критической ошибке, то скорее всего проблема именно в версии PHP. Обратитесь к своему хостеру за помощью.

На момент написания обзора актуальной была версия 2.2.7. Она требовала минимум вордпресс 4.6, так что сайты на старых сборках вам придется . Загрузок не так много — больше 3 тысяч, оценка практически максимальная — 4,8 (кто-то поставил 1 балл, т.к. не смог его запустить).

После активации модуля он сразу же начнет работать без дополнительных настроек — все вордпресс аватары, которые не используют Gravatar, получат картинки с первой буквой имени. Вы можете внести некоторые правки в работу решения в разделе «Настройки» — «WP First Letter Avatar».

Здесь есть:

  • Letter index — номер считываемой буквы в имени комментатора: «0» — первая, «1» — вторая и т.п., «-1» — последняя.
  • File format — формат png или jpg.
  • Unknown image name — имя файла для неизвестных ников, где невозможно применить алгоритм распознавания (по умолчанию mystery.png).
  • Avatar set — текущий набор вордпресс аватаров (по факту, это название папки на хостинге, где хранятся иконки-заглушки wp-first-letter-avatar/images/default/ ).
  • Use Gravatar — учитывать ли оригинальные Gravatar`ы на сайте. Если выключить, все картинки будут генерироваться через WP First Letter Avatar.
  • Round avatars — круглые изображения (как в Google+).
  • Plugin filter priority — когда используете несколько плагинов для аватаров, данная настройка позволяет устанавливать приоритетность. Так, например, если WP First Letter Avatar будет мешать работе других модулей, уменьшайте данный параметр. Иногда следует поставить значение от 11 до 9999 дабы наоборот сделать его более приоритетным.

Итого. Что не говорите, а плагин крутой. Во-первых, это смотритмся оригинально, во-вторых, отлично реализовано и продумано до мелочей. Если вы ищете подходящее решение дабы сделать ленту комментариев более яркой и уникальной — лучше метода не найти. При этом запросто можете менять базовые варианты иконок на свои. Единственное, не знаю как обстоят дела с нагрузкой на сайт при больших посещениях: с одной стороны картинки оптимизированы, с другой, конечно, проще выводить одно изображение для всех. Не думаю, правда, что там сильные задержки по загрузке, тем более, что комментарии часто разбиваются на страницы. В общем, пробуйте WP First Letter Avatar и пишите свои впечатления ниже.

Flector 5

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

Скачиваем плагин с его домашней страницы и устанавливаем его:

1. Распаковываем архив.

2. Копируем папку simple-local-avatars в /wp-content/plugins/ .

3. Заходим в админку блога на вкладку "Плагины " и активируем плагин.

У плагина есть одна единственная настройка, которую вы найдете в "Параметрах\Обсуждение ":

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

Сам аватар устанавливается в профиле пользователя. Все что нужно - это выбрать картинку аватара и нажать кнопку "Обновить профиль ". Этот аватар будет загружен в папку uploads вашего блога (или в папку, которую вы установили для загрузки медиафайлов в настройках блога).

Картинка аватара загружается в блог без каких-либо изменений. Аватарки нужного размера из этой картинки формируются по запросу. Например, в профиле выводится аватарка размера 96x96 - при открытии профиля будет сформирован аватар именно с этими размерами.

Огромное удобство плагина в том, что он не заменяет собой граватары, а работает совместно с ними - если установлен локальный аватар, то он будет показан с теми размерами, с которыми выводятся и граватары. Если локальный аватар не установлен, то вместо него будет выведен граватар. Таким образом, вы избежите ситуаций, когда на 20 комментариев разных авторов выводится лишь одна аватарка комментатора, который не поленился ее залить в блог.

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

Плагин очень простой, но при этом полностью выполняет возложенные на него функции без какой-либо доводки его до ума. Если вам в блоге нужен плагин локальных аватаров для WordPress , то лучше вы ничего не найдете.