Вопрос или проблема
Я хочу показать аватар автора поста. Я использую Ultimate Members и хочу показывать аватары, которые определены через UM.
<?php
global $post;
$url = get_avatar_url( $post, array( 'size' => 48 ));
$img = '<img alt="" src="'. $url .'">';
echo $img;
?>
Но этот код показывает граватары или аватар по умолчанию. Как я могу получить аватары из Ultimate Member?
Чтобы получить аватары пользователей плагина UM, нужно сделать следующее :
// Возвращает аватар заданного пользователя
um_get_user_avatar_url( $user_id = '', $size="96" )
Модератор удалил этот ответ, но этот код работает:
get_avatar( get_the_author_meta( 'user_email' ), 48 );
.
Ответ или решение
Для отображения аватара автора поста с использованием плагина Ultimate Member, необходимо правильно использовать функции, предоставляемые этим плагином. Ваша начальная попытка запрашивать аватары через функцию get_avatar_url
возвращает аватары, определенные в Gravatar или стандартные аватары, что не соответствует вашей задаче. Рассмотрим, как это сделать оптимально.
Шаг 1: Получение ID пользователя
Сначала определим ID автора поста. Это можно сделать с помощью функции get_the_author_meta()
.
$user_id = get_the_author_meta('ID');
Здесь мы получаем ID пользователя, который является автором текущего поста.
Шаг 2: Получение аватара через Ultimate Member
После того как мы получили ID пользователя, можно воспользоваться функцией Ultimate Member для получения аватара:
$avatar_url = um_get_user_avatar_url($user_id, 48); // размер 48px
Шаг 3: Отображение аватара
Теперь необходимо добавить HTML-код для отображения изображения. Будет разумно проверять, успешно ли получен адрес аватара:
if ($avatar_url) {
echo '<img alt="' . esc_attr(get_the_author()) . '" src="' . esc_url($avatar_url) . '" width="48" height="48">';
} else {
echo '<img alt="' . esc_attr(get_the_author()) . '" src="' . esc_url(get_avatar_url($user_id)) . '" width="48" height="48">'; // Резервный вариант
}
Полный пример кода
Объединим все вышеперечисленные шаги в один полный фрагмент кода, который можно вставить непосредственно в ваш шаблон:
<?php
global $post;
// Получить ID автора поста
$user_id = get_the_author_meta('ID');
// Получить URL аватара пользователя через Ultimate Member
$avatar_url = um_get_user_avatar_url($user_id, 48); // Размер 48px
// Отобразить аватар
if ($avatar_url) {
echo '<img alt="' . esc_attr(get_the_author()) . '" src="' . esc_url($avatar_url) . '" width="48" height="48">';
} else {
echo '<img alt="' . esc_attr(get_the_author()) . '" src="' . esc_url(get_avatar_url($user_id)) . '" width="48" height="48">'; // Резервный вариант
}
?>
Заключение
Используя представленный код, вы сможете эффективно отображать аватары авторов постов, которые заданы через плагин Ultimate Member. Это не только способствует улучшению пользовательского опыта, но и делает ваш сайт более индивидуальным и профессиональным. Соблюдая эти шаги, вы получите ожидаемый результат, избегая при этом отображения стандартных аватаров от Gravatar.