Отобразить аватар автора поста для Ultimate Member

Вопрос или проблема

Я хочу показать аватар автора поста. Я использую 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.

Оцените материал
Добавить комментарий

Капча загружается...