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

Кастомизация WordPress: список авторов с помощью get_userdata

• 5 min read • WordPress • Обновлено 29 Nov 2025
Кастомизация WordPress: список авторов через get_userdata
Кастомизация WordPress: список авторов через get_userdata

Шаблон WordPress: боковая панель с блоком авторов

Зачем это нужно

WordPress по умолчанию предоставляет функции вроде the_author(), которые возвращают данные автора для текущей записи. Но на центральных страницах (например, на странице блога или в сайдбаре) часто нужен список всех авторов. Используя get_userdata() и get_avatar(), вы можете:

  • получить bio (user_description) любого зарегистрированного пользователя;
  • показать аватар по email независимо от контекста страницы;
  • централизованно управлять биографиями через профиль пользователя.

Важно: перед правками сделайте резервную копию файлов темы и тестируйте в дочерней теме.

Что нужно подготовить

  1. Зайти в админку WordPress → Пользователи → Редактировать пользователя (Edit User).
  2. Для каждого автора записать email и user_id. В URL страницы редактирования вы увидите параметр user_id= (например: ?user_id=4).
  3. Желательно включить мини‑фото (Gravatar) и заполнить «Короткое описание» в профиле — это поле выводится как user_description.

Базовый пример (исходный код)

Ниже — минимальный фрагмент, который выводит аватар по email и описание из профиля пользователя по ID. Код сохранён в исходном виде PHP/HTML:

        user_description . "\n";    ?>

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

  • get_avatar() получает изображение аватара по e-mail — не зависит от текущего автора страницы;
  • get_userdata($user_id) возвращает объект WP_User с множеством полей (ID, user_email, display_name, user_description и др.).

Пример: список авторов в сайдбаре

Ниже — более полный пример, где мы храним массив ID авторов и итерируем по нему. Код демонстрационный, адаптируйте под вашу тему и стили.

user_email;
    $avatar = get_avatar($email, 64, '', $user->display_name);
    $name = esc_html($user->display_name);
    $bio = esc_html($user->user_description);
    $profile_url = esc_url(get_author_posts_url($aid, $user->user_nicename));
    echo "
"; echo "{$avatar}"; echo "

{$name}

"; echo "

{$bio}

"; echo "
"; } ?>

Советы безопасности и качества:

  • используйте esc_html(), esc_attr(), esc_url() при выводе данных;
  • кешируйте выдачу для производительности (transients или объектный кеш);
  • учитывайте мобильные размеры аватаров и доступность (alt у изображений добавит get_avatar автоматически для Gravatar).

Какие поля можно читать через get_userdata

get_userdata($id) возвращает объект WP_User. Частые поля:

  • ID — числовой идентификатор пользователя;
  • user_email — e‑mail;
  • display_name — отображаемое имя;
  • user_nicename — удобный для URL ник;
  • user_url — личный сайт;
  • user_registered — дата регистрации;
  • roles — массив ролей (editor, author и т.д.);
  • user_description — поле «О себе» (bio).

1‑строчная подсказка: get_userdata возвращает объект с полями и методами WP_User для проверки прав.

Альтернативные подходы

  • Использовать WP_User_Query, чтобы получить всех пользователей с ролью author: более масштабируемо для динамического списка.
  • Хранить список авторов в опции или мета‑поле темы для простого управления в админке.
  • Плагин «Team» или «Authors List» — если не хотите кодить.

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

 array('author','editor','administrator'), 'orderby' => 'display_name', 'order' => 'ASC');
$user_query = new WP_User_Query($args);
if (!empty($user_query->results)) {
    foreach ($user_query->results as $user) {
        // выводим как в примере выше
    }
}
?>

Когда этот подход не подходит (контрпримеры)

  • Если вы хотите автоматически включать только тех людей, у кого есть опубликованные статьи — тогда лучше фильтровать по наличию записей (get_posts или WP_User_Query с meta_query).
  • Если на сайте много пользователей (тысячи) — перебор всех ID без пагинации или кеша ударит по производительности.

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

  1. Соберите ID и email авторов.
  2. Протестируйте get_userdata для одного профиля.
  3. Сверстайте макет авторского блока и адаптируйте стили.
  4. Добавьте защиту вывода (esc_*), кеширование и проверку существования полей.
  5. Тестируйте на мобильных и со слабой пропускной способностью.

Важно: не редактируйте файлы в родительской теме — используйте дочернюю тему (child theme).

Чеклист ролей (Developer / Editor / Admin)

  • Developer:
    • проверить корректность get_userdata и безопасность вывода;
    • добавить кеш и предусмотреть пагинацию;
    • сделать стили адаптивными.
  • Editor:
    • убедиться, что поле «Короткое описание» заполнено;
    • обновить профиль при необходимости.
  • Admin:
    • при необходимости собрать список ID и email;
    • назначить роли и права редактирования профиля.

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

  • Каждый автор в списке отображается с именем, аватаром и био;
  • Ссылки на профиль/архив автора ведут корректно;
  • Вывод корректен на мобильных устройствах;
  • Нет SQL‑ошибок, страницы кешируются.

Тестовые случаи

  • Пользователь без заполненного user_description — блок выводит заглушку или пропускается;
  • Некорректный ID в списке — пропускается без фатальной ошибки;
  • Большой список авторов — проверка времени отклика и кеша.

Маленькая галерея исключений

  • Gravatar не настроен — аватар выводится стандартный (по умолчанию);
  • Пользователь удалён — get_userdata вернёт null и нужно обработать этот сценарий.

Пример вывода в виде карточки (шаблон HTML)

HTML:
Аватар John

John Doe

Короткое описание о себе...

## Безопасность и GDPR — кратко - Не публикуйте личные e‑mail в открытом виде без согласия. Лучше показывать ссылку на профиль автора, а не почту. - Обновляйте плагины и ядро WordPress для защиты профилей пользователей. ## Быстрый словарь (1 линия) - get_userdata — функция, возвращающая объект WP_User с данными пользователя по ID. ## Резюме - get_userdata + get_avatar дают простой и гибкий способ составлять список авторов сайта; - важно обрабатывать ошибки, кешировать и следить за производительностью; - для динамического получения всех авторов используйте WP_User_Query. Поделитесь в комментариях: как вы выводите авторские блоки на своём сайте? Есть ли у вас оптимизации или шаблоны, которыми стоит поделиться? ![Пример списка авторов с аватарами и биографиями](/files/f52de44f-9d77-4cb2-97bd-266956029a6e.5) ![Карточки авторов в сайдбаре WordPress](/files/b0a1a2c9-3b6d-4181-b23e-59b9fb7e4b47.5) ![Вывод bio через get_userdata на странице темы](/files/376079b1-8969-48f0-a1b1-cbf2370b0087.5) ![Автоматическое обновление био после редактирования профиля](/files/554c168d-487d-486c-8d11-d0ff9c5ce046.5) Изображение: Henk L
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро