Как добавить уникальные поля для пользователей в WordPress

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

Почему стоит использовать уникальные поля для пользователей в WordPress

Добавление кастомных полей позволяет расширить стандартные возможности WordPress и адаптировать систему под конкретные задачи сайта. Это особенно важно для сайтов с регистрацией, магазинов на WooCommerce, обучающих платформ или сообществ.

Уникальные поля помогают:

  • Собрать дополнительную информацию о пользователях;
  • Персонализировать контент и интерфейс;
  • Использовать данные в бизнес-логике, например, для рассылок или фильтрации;
  • Улучшить администрирование и статистику.

Для реализации можно использовать как плагины, так и собственный код, что даст максимальный контроль.

Добавление пользовательских полей через функции WordPress

Самый гибкий способ — добавить поля программно с помощью хуков WordPress. Рассмотрим пример добавления поля "Телефон" в профиль пользователя в админке и на фронтенде.

Добавление поля в админку профиля пользователя

Для начала нужно добавить поле в форму редактирования пользователя в админке. Используем хук show_user_profile и edit_user_profile:

function wptips_add_custom_user_profile_fields($user) {
    ?>
    <h3>Дополнительная информация</h3>
    <table class="form-table">
        <tr>
            <th><label for="phone">Телефон</label></th>
            <td>
                <input type="text" name="phone" id="phone" value="<?php echo esc_attr(get_user_meta($user->ID, 'phone', true)); ?>" class="regular-text" />
                <br /><span class="description">Введите номер телефона пользователя.</span>
            </td>
        </tr>
    </table>
    <?php
}
add_action('show_user_profile', 'wptips_add_custom_user_profile_fields');
add_action('edit_user_profile', 'wptips_add_custom_user_profile_fields');

Этот код добавит новое поле "Телефон" в профиль пользователя в админке.

Сохранение пользовательского поля

Чтобы сохранить значение поля, нужно повесить функцию на хуки personal_options_update и edit_user_profile_update:

function wptips_save_custom_user_profile_fields($user_id) {
    if (!current_user_can('edit_user', $user_id)) {
        return false;
    }
    if (isset($_POST['phone'])) {
        update_user_meta($user_id, 'phone', sanitize_text_field($_POST['phone']));
    }
}
add_action('personal_options_update', 'wptips_save_custom_user_profile_fields');
add_action('edit_user_profile_update', 'wptips_save_custom_user_profile_fields');

Таким образом, введённые данные будут сохранены в мета-поле пользователя.

Отображение уникальных полей на фронтенде

Часто нужно показать эти данные на странице профиля пользователя или в комментариях. Рассмотрим пример вывода поля «Телефон» в шаблоне:

$user_id = get_current_user_id();
$phone = get_user_meta($user_id, 'phone', true);
if ($phone) {
    echo '<p><strong>Телефон:</strong> ' . esc_html($phone) . '</p>';
}

Этот код можно вставить в шаблон темы или в шорткод для вывода информации.

Использование плагинов для добавления уникальных пользовательских полей

Если нет желания писать код, можно применить готовые плагины. Рассмотрим наиболее популярные и удобные:

1. Advanced Custom Fields (ACF)

ACF позволяет создавать произвольные поля не только для записей, но и для пользователей. Для этого в настройках поля укажите локацию "Пользователь". Плагин предоставляет удобный интерфейс для добавления различных типов полей — текст, выбор, даты, файлы и др.

Преимущества:

  • Простота в использовании;
  • Широкие возможности;
  • Отличная совместимость с темами и плагинами.

После добавления поля, вывести его можно так:

echo esc_html(get_field('phone', 'user_' . $user_id));

2. Profile Builder

Плагин позволяет создавать кастомные поля в регистрационных формах и профилях пользователей. Есть бесплатная и платная версия с расширенным функционалом.

Функционал:

  • Добавление и редактирование полей в профиле;
  • Настройка видимости и валидация;
  • Использование шорткодов для вывода форм.

3. User Meta Pro (платный)

Очень мощный плагин для управления пользовательскими полями, с множеством типов полей, условной логикой и интеграцией с WooCommerce.

Советы по организации и безопасности пользовательских полей

При работе с пользовательскими полями важно учитывать безопасность и удобство:

  • Всегда фильтруйте и очищайте данные перед сохранением (функции sanitize_text_field, esc_html и др.).
  • Проверяйте права пользователя перед сохранением данных.
  • Не храните конфиденциальную информацию в открытом виде.
  • Проявляйте внимание к удобству интерфейса — добавляйте пояснения и валидацию.
  • Если добавляете поля в формы регистрации, тестируйте корректность работы и защиту от spam.

Пример комплексного решения: добавление поля "Telegram" с проверкой и выводом

Рассмотрим пример добавления поля Telegram с проверкой формата и выводом на фронтенде.

function wptips_add_telegram_field($user) {
    ?>
    <h3>Контакты</h3>
    <table class="form-table">
        <tr>
            <th><label for="telegram">Telegram</label></th>
            <td>
                <input type="text" name="telegram" id="telegram" value="<?php echo esc_attr(get_user_meta($user->ID, 'telegram', true)); ?>" class="regular-text" />
                <br /><span class="description">Введите ваш Telegram, например @username.</span>
            </td>
        </tr>
    </table>
    <?php
}
add_action('show_user_profile', 'wptips_add_telegram_field');
add_action('edit_user_profile', 'wptips_add_telegram_field');

function wptips_save_telegram_field($user_id) {
    if (!current_user_can('edit_user', $user_id)) {
        return false;
    }
    if (isset($_POST['telegram'])) {
        $telegram = sanitize_text_field($_POST['telegram']);
        if (preg_match('/^@\w{5,}$/', $telegram)) { // проверяем формат
            update_user_meta($user_id, 'telegram', $telegram);
        }
    }
}
add_action('personal_options_update', 'wptips_save_telegram_field');
add_action('edit_user_profile_update', 'wptips_save_telegram_field');

// Вывод на фронтенде
function wptips_show_telegram($user_id) {
    $telegram = get_user_meta($user_id, 'telegram', true);
    if ($telegram) {
        echo '<p><strong>Telegram:</strong> <a href="https://t.me/' . esc_attr(substr($telegram, 1)) . '" target="_blank">' . esc_html($telegram) . '</a></p>';
    }
}

Заключение

Добавление уникальных пользовательских полей — мощный способ кастомизировать WordPress и сделать сайт более функциональным. Выбор между кодом и плагинами зависит от задач и навыков, но даже минимальный код позволяет быстро реализовать базовые поля. Используйте проверенные методы и не забывайте про безопасность и удобство пользователей.

Для расширенных возможностей рекомендую обратить внимание на плагины, которые поддерживаются и регулярно обновляются, например, Advanced Custom Fields.

Как добавить уникальные поля для пользователей в WordPress
12.03.2026
Как удалить заблокированные или замороженные учётные записи пользователей в WordPress
18.05.2026
Как создать собственный шорткод в WordPress: подробное руководство
31.10.2025
Как создать автоматический импорт визиток в WordPress с помощью REST API
30.03.2026
Как временно отключить WooCommerce без потери данных
21.05.2026