Гид по технологиям

Блок биографий авторов в WordPress через get_userdata

5 min read WordPress Обновлено 04 Jan 2026
Блок биографий авторов в WordPress
Блок биографий авторов в WordPress

Схема вывода биографий авторов в WordPress

WordPress гибок и даёт много возможностей для кастомизации. Даже при стандартных темах вы можете изменять PHP-файлы шаблонов, чтобы получить динамические блоки — например, список биографий всех зарегистрированных авторов сайта. В этой статье я объясню, как использовать функции WordPress, чтобы извлечь данные пользователя по его ID или email и показать аватар, описание и другие поля профиля.

Почему get_userdata полезен для списка авторов

Стандартные функции типа the_author() ориентированы на автора текущей записи. Для центральных страниц — главной блога, архива или сайдбара — где нет одного “текущего” автора, они возвращают дефолтный результат. Функция get_userdata возвращает объект WP_User по ID и даёт доступ ко всем полям профиля: display_name, user_email, user_url, description и другим.

Короткая определение: get_userdata — функция WordPress, которая возвращает объект пользователя по его user_id и позволяет безопасно получать поля профиля.

Важно: чтобы использовать get_userdata, вам нужен user_id каждого автора. User ID видно в URL редактирования профиля (user_id=).

Пример: базовый вывод аватара и описания

Ниже — минимальный рабочий пример для вывода аватара пользователя и его описания. Разместите код в шаблоне (sidebar.php или кастомном шаблоне):

' . get_avatar($author_email, 80) . '';
// Получаем объект пользователя по ID
$user_info = get_userdata(4);
// Безопасный вывод описания
if ($user_info && !empty($user_info->user_description)) {
    echo esc_html($user_info->user_description) . "\n";
}
?>

Вывод аватара и описания автора в шаблоне WordPress

Как это работает:

  • get_avatar получает изображение по email и не зависит от текущей записи.
  • get_userdata получает объект пользователя по ID и возвращает множество полей.
  • Для безопасного вывода используйте функции экранирования (esc_html, esc_attr, esc_url).

Пример: вывод списка биографий для нескольких авторов

Частая задача — вывести сразу всех или выбранных авторов в сайдбаре. Ниже пример, где IDs авторов берутся из массива. Код можно дополнить выборкой пользователей по роли (author, editor) с помощью get_users.

';
    echo get_avatar($user->user_email, 64);
    echo '

' . esc_html($user->display_name) . '

'; if (!empty($user->user_url)) { echo '' . esc_html($user->user_url) . ''; } if (!empty($user->user_description)) { echo '

' . esc_html($user->user_description) . '

'; } echo '
'; } ?>

Совет по стилизации: используйте CSS-классы (.author-card) и flexbox для аккуратного расположения изображений и текста.

Варианты получения списка авторов

  1. Ручной список ID — простой контроль и стабильность.
  2. get_users с аргументом ‘role’ => ‘author’ — автоматически выбирает всех авторов.
  3. get_users с ‘orderby’ => ‘post_count’ — сортировка по количеству публикаций.
  4. Пользовательская SQL-выборка при очень большой базе (только при необходимости и с кэшированием).

Пример get_users для всех авторов:

 array('author', 'editor'),
    'orderby' => 'display_name',
    'order' => 'ASC'
));
foreach ($authors as $user) {
    // вывод как в примере выше
}
?>

Безопасность и производительность

  • Всегда экранируйте вывод: esc_html для текста, esc_url для ссылок.
  • Для большого количества авторов используйте transient API или object cache, чтобы не нагружать базу.
  • Ограничьте поля выборки, если используете кастомные запросы.
  • Будьте осторожны при выводе user_email — публиковать email в открытом виде не рекомендуется.

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

Критерии приёмки

  • На тестовой странице отображается карточка для каждого указанного автора.
  • В карточке показаны аватар, имя, описание и ссылка (если есть).
  • Текст корректно экранируется, отсутствуют уязвимости XSS.
  • При изменении описания в профиле изменения видны без правок шаблона.

Чек-лист внедрения

  • Узнать user_id каждого автора (через Edit User в админке).
  • Решить источник списка (ручной массив, get_users, роль).
  • Вставить код в шаблон (sidebar.php или виджет).
  • Добавить CSS для .author-card и аватаров.
  • Проверить экранирование и корректность ссылок.
  • Настроить кэширование при >30 авторов.

Когда этот подход не подходит и альтернативы

Когда не подходит:

  • Нужна миграция на внешнюю систему авторов (например, каталог авторов в отдельной базе) — лучше использовать REST API.
  • Очень большое число авторов без кэширования — нагрузка на БД.
  • Требуется сложный фильтр и ранжирование по активности — используйте WP_Query и метаполя.

Альтернативы:

  • Плагин для списка авторов (если хотите GUI и готовые стили).
  • REST API и отдельный фронтенд (если вы делаете SPA).

Мини-методология внедрения (шаги)

  1. Соберите user_id и email авторов.
  2. Напишите и протестируйте вывод для одного автора.
  3. Расширьте до списка и добавьте стили.
  4. Включите экранирование и проверку на существование полей.
  5. Настройте кэш и протестируйте нагрузку.
  6. Документируйте процесс редактирования биографий для редакторов.

Edge-case галерея и отладка

  • Пустое поле user_description — показывайте заглушку “Биография отсутствует”.
  • Аватар не найден — get_avatar возвращает дефолтное изображение; можно заменить на локальное.
  • Пользователь с удалённым аккаунтом — get_userdata вернёт null, пропустите запись.
  • Много HTML в описании — если хотите разрешённый HTML, применяйте wp_kses с белым списком тегов.

Короткий словарь терминов

  • get_userdata — возвращает объект WP_User по user_id.
  • get_avatar — возвращает HTML аватара по email или ID.
  • esc_html / esc_url — функции экранирования для безопасного вывода.
  • get_users — функция для выборки пользователей по параметрам.

Блоки биографий в сайдбаре WordPress

Советы по локализации и поддержке редакторов

  • Инструктируйте авторов, как заполнять поле Биография в профиле.
  • Если сайт на нескольких языках, храните локализованные описания в user_meta и выбирайте нужный вариант по текущему языку.
  • Для GDPR: не показывайте email без согласия; используйте форму контакта через сайт.

Пример расширения: карточка с соцсетями и ролями

Добавьте в профиль custom fields (например, twitter, linkedin) или используйте существующие поля user_url. В шаблоне проверьте наличие полей и выведите иконки с ссылками. Не забудьте экранировать URL через esc_url.

Итог и рекомендации

Вывод биографий авторов через get_userdata даёт точный контроль над тем, какие данные показывать, и работает независимо от того, с какой страницы вызывается код. Это удобно для сайдбаров, страниц “О команде” и централизованного каталога авторов. Для крупных сайтов добавляйте кэширование и документируйте процесс редактирования профилей для вашей команды.

Карточки авторов в WordPress с аватарами и описанием

Короткое объявление для команды: добавьте инструкции по заполнению поля «Биография» в профиле пользователей. После обновления профиля карточки на сайте обновятся автоматически.

Кредит изображения: Henk L

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство