Как использовать REST API для управления пользователями в WordPress

WordPress REST API открывает широкие возможности для управления сайтом программно, в том числе и для работы с пользователями. В этой статье мы подробно разберём, как с помощью REST API создавать, получать, обновлять и удалять пользователей WordPress. Это полезно для интеграций, мобильных приложений или кастомных админ-панелей.

Что такое REST API в WordPress и зачем управлять пользователями через него

REST API представляет собой набор URL-эндпоинтов, которые позволяют работать с данными сайта через запросы HTTP. Управление пользователями через API удобно, если нужно автоматизировать регистрацию, обновление профилей или удаление пользователей вне стандартной админки.

Основные операции с пользователями через REST API:

  • Получение списка пользователей и данных конкретного пользователя
  • Создание нового пользователя
  • Обновление данных пользователя
  • Удаление пользователя

Для работы с пользователями через REST API необходимы права администратора или подходящие capabilities, а также аутентификация (например, через JWT или OAuth).

Подключение и аутентификация для работы с REST API пользователей

По умолчанию эндпоинты WordPress REST API для пользователей защищены. Для аутентификации можно использовать разные методы, но JWT токены — один из удобных и популярных. Рассмотрим пример с плагином JWT Auth for WP.

После установки плагина и настройки секретного ключа в wp-config.php вы получаете возможность авторизовываться через POST-запрос на /wp-json/jwt-auth/v1/token, передавая логин и пароль пользователя.

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

POST https://example.com/wp-json/jwt-auth/v1/token
Content-Type: application/json

{
  "username": "admin",
  "password": "password123"
}

В ответ вы получите JWT токен, который нужно передавать в заголовке Authorization в последующих запросах:

Authorization: Bearer your_jwt_token_here

Получение списка пользователей и данных конкретного пользователя через REST API

Чтобы получить список пользователей, отправьте GET-запрос на эндпоинт /wp-json/wp/v2/users. Запрос требует авторизации с правами администратора.

Пример запроса с curl:

curl -X GET https://example.com/wp-json/wp/v2/users \
  -H "Authorization: Bearer your_jwt_token_here"

Ответом будет JSON-массив с пользователями и их данными (ID, имя, email, роли и др.).

Для получения данных конкретного пользователя используйте тот же эндпоинт с ID пользователя, например:

GET https://example.com/wp-json/wp/v2/users/15

Создание нового пользователя через REST API

Для создания пользователя отправляйте POST-запрос на /wp-json/wp/v2/users с телом запроса, содержащим обязательные поля, например:

{
  "username": "newuser",
  "email": "newuser@example.com",
  "password": "strongpassword",
  "roles": ["subscriber"]
}

Пример curl-запроса:

curl -X POST https://example.com/wp-json/wp/v2/users \
  -H "Authorization: Bearer your_jwt_token_here" \
  -H "Content-Type: application/json" \
  -d '{"username":"newuser","email":"newuser@example.com","password":"strongpassword","roles":["subscriber"]}'

Обратите внимание, что в стандартном WordPress REST API создание пользователя доступно только для администратора.

Обновление данных пользователя через REST API

Для обновления информации пользователя используйте метод PATCH или PUT на эндпоинт /wp-json/wp/v2/users/{id}. Например, чтобы изменить email и роль пользователя с ID 15:

curl -X PATCH https://example.com/wp-json/wp/v2/users/15 \
  -H "Authorization: Bearer your_jwt_token_here" \
  -H "Content-Type: application/json" \
  -d '{"email":"updated@example.com","roles":["editor"]}'

В теле можно передавать любые поддерживаемые поля, такие как display_name, nickname, description и т.д.

Удаление пользователя через REST API

Удаление пользователя осуществляется запросом DELETE на /wp-json/wp/v2/users/{id}. По умолчанию требуется админ-права.

Пример запроса:

curl -X DELETE https://example.com/wp-json/wp/v2/users/15 \
  -H "Authorization: Bearer your_jwt_token_here" \
  -H "Content-Type: application/json"

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

curl -X DELETE "https://example.com/wp-json/wp/v2/users/15?reassign=1" \
  -H "Authorization: Bearer your_jwt_token_here"

Расширение REST API для управления дополнительными полями пользователя

Если вам нужно работать с пользовательскими мета-полями, их можно зарегистрировать в REST API с помощью хука rest_api_init и функции register_rest_field. Например, добавим поле "phone" в ответ API:

add_action('rest_api_init', function() {
  register_rest_field('user', 'phone', [
    'get_callback' => function($user) {
      return get_user_meta($user['id'], 'phone', true);
    },
    'update_callback' => function($value, $user) {
      update_user_meta($user->ID, 'phone', sanitize_text_field($value));
    },
    'schema' => [
      'description' => 'User phone number',
      'type' => 'string',
      'context' => ['view', 'edit'],
    ],
  ]);
});

После чего при запросе пользователя будет выдаваться поле phone, а при обновлении можно менять его через REST API.

Полезные плагины для работы с REST API пользователей

  • JWT Auth for WP — добавляет JWT аутентификацию для REST API.
  • Clearfy Pro — помогает оптимизировать и обезопасить работу REST API и сайт в целом.

Заключение

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

Рекомендуется использовать JWT аутентификацию, чтобы удобно работать с API из внешних приложений, а также подключать проверенные плагины, например, из набора WPSHOP.

Как правильно использовать WP-Cron в WordPress: практическое руководство
13.09.2026
Как удалить автоматические подписки email в WordPress
03.10.2026
Как удалить ненужные стили и скрипты WordPress без потери функциональности
13.09.2026
Как создать настройку отслеживания событий в WordPress с примерами кода
03.10.2026
Как изменить заголовки страниц в WordPress через хуки: практические примеры
22.09.2026

Развитие бизнеса вокруг WordPress: современные решения и подробные руководства.