Если на вашем сайте нужно установить аватар для конкретного автора, т.е. в этом случае не работать с сервисом Gravatar, а задать картинку локально для конкретного пользователя, то в посте и решим эту задачу.
Помимо прочего – средствами функции – возможно организовать адресное сообщение для автора – видимое всем, или только ему (разумеется, настройки в админке). К примеру, поздравить с Днем Рождения и пр.
В тексте ниже дам упрощенный вариант, организуем – только локальный аватар для конкретного автора. Если кому-то потребуется более расширенная функция для решения по теме затронутой задачи, пишите:
Как известно, касаемо настроек аватарок пользователей, есть решение – плагин One User Avatar. Однако, не всем по душе использование плагинов…
…к тому же, если это не оправдано: к примеру, у вас несколько авторов, и все они (или кто-то из них) не пользуются сервисом граватар, а следовательно не имеют личной картинки в блоке авторства поста и при комментировании – в этом случае им требуется задать индивидуальную аву… установить и забыть… В общем-то плагин не нужен…
Сначала дам сниппет, который решает задачу “пустых” аватарок – без картинки. Либо вам не по душе варианты по умолчанию в Настройки/Обсуждение и вы хотите сделать так, как реализовано на моем тестовом сайте (скрин ниже):
К примеру, возможно задать собственный фирменный аватар сайта (для комментаторов БЕЗ аватара), который будет лишний раз напоминать о деятельности вашей площадки, напоминания о бренде, так сказать… Вообще, если прикинуть, то вариантов использования подмены аватара пользователя масса!.. и ключевая особенность здесь не комментирование.
преимуществом сервиса Граватар является факт того, что, при комментировании на сайтах посредством вашей эл/почты (коя зарегина в сервисе), ваша фотка (аватар) будет выведен автоматически на любом из сайтов!
Решение в следующей главе (опишу решение вкратце: едва ли нужно расписывать подробно):
Как изменить стандартный аватар по умолчанию в WordPress
Зададим свой фирменный аватар для комментаторов БЕЗ аватара – добавь данный код в ядро своего сайта (в functions.php (файл функций) например):
/*зададим свой фирменный аватар для комментаторов БЕЗ аватара*/
//
add_filter( 'avatar_defaults', 'ats_new_avatar_authors' ); //фильтруем данные
function ats_new_avatar_authors( $avatars ) {
$url = get_stylesheet_directory_uri() . '/images/logo-ava.jpg'; //указываем путь к картинке
$avatars[ $url ] = 'Аватар сайта такого-то'; //подсказка в админке
return $avatars;
}
/*зададим свой фирменный аватар для комментаторов БЕЗ аватара*/
Недостатком (или для кого-то достоинством) данной метОды можно считать тот факт, что при организации придется идти в админку и устанавливать заданный аватар (по скрину выше).
То есть, при желании модернизации метода, придется что-то как-то комбинировать… для примера, рассмотрим вариант ниж.
Напоминаю: фирменная аватарка будет добавлена комментатору только в том случае, если он не имеет личной картинки в сервисе Gravatar!..
Добавим в профиль пользователя дополнительный блок об Авторе: без плагина
задаем именной аватар для конкретного пользователя (автора) на сайте
Показанный ниже сниппет решает задачу по теме, когда вам требуется изменить аватар для конкретного пользователя локально (внутри сайта) – по идентификатору юзера – по ID (id показан в настройках Пользователи).
…добавим код, который задает локальный аватар пользователю: (можно добавить в файл в файл функций активного или дочернего шаблона):
/*задаем именной аватар для конкретного пользователя (автора) на сайте*/
add_filter( 'get_avatar', 'atsmy_customs_avatars' , 1 , 5 );
function atsmy_customs_avatars( $avatar, $id_or_email, $size, $default, $alt ) {
$user = false;
if ( is_numeric( $id_or_email ) ) {
$id = (int) $id_or_email;
$user = get_user_by( 'id' , $id );
} elseif ( is_object( $id_or_email ) ) {
if ( ! empty( $id_or_email->user_id ) ) {
$id = (int) $id_or_email->user_id;
$user = get_user_by( 'id' , $id );
}
} else { //инвертирование
$user = get_user_by( 'email', $id_or_email ); //получаем данные пользователя
}
if ( $user && is_object( $user ) ) {
$avausid = '/wp-content/themes/шаблон/images/avaNews.jpg'; //указываем путь до картинки в ядре шаблона: можно аву загрузить в ядро сайта: img/avaNews.jpg (расширение файла картинки любое)
if ( $user->data->ID == '5' ) { //указываем id пользователя
$avatar = sprintf( $avausid, get_stylesheet_directory_uri() );
$avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />"; //переменная формирования вывода данных ссылки
}
}
return $avatar;
}
/*задаем именной аватар для конкретного пользователя (автора) на сайте*/
Преимущества данного сниппета перед первым вариантом: данная функция отработает жестко: то есть администратор сможет самостоятельно задавать аватары любому пользователю!.. Никаких дополнительных действий совершать не нужно!..
Функция comment_form()
Как добавить аватарку к имени автора (данные Об авторе) — в начале или финале статьи
плагины для организации аватарок в WordPress
- Упоминаемый выше – One User Avatar;
- Basic User Avatars – загрузка через профиль пользователя (и во фронте);
- Avatar Manager – настройки в профиле (сервис gravatar не требуется) – возможности через функцию get_avatar();
- Add New Default Avatar;
- WP First Letter Avatar.
Что из себя в итоге представляют и как работают плагины в плане качества – не знаю, не пользовался.
напоминаю: если кого-то интересует данная тема более утонченно – обращайтесь… Организуем или в шаблоне, или создадим плагин. Настройки выведем в админке в разделе на ваше усмотрение.
Словом, организуем так, как нужно!..
Создание… продвижение сайтов: студия ATs media запросто с WordPress
Как правильно закомментировать на время код HTML, CSS или PHP, JS
mihalica.ru !
Здравствуйе!
А можно как то для переменной
$alt
получить данные? Ну, чтоб потом на экран (в код) алт и титле вывести…Привет, Сергей!
Попробуйте получить данные так (добавьте в код эти строки):
…а далее выводите значения переменных где нужно.