Как запретить регистрацию пользователей в WordPress с помощью кода и плагинов

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

Почему важно контролировать регистрацию пользователей в WordPress

Стандартно в WordPress регистрация новых пользователей активируется через настройку «Любой может зарегистрироваться» в разделе «Настройки» – «Общие». Если эта опция включена, любой человек может создать аккаунт на сайте. Это удобно для сайтов с сообществом, форумами, магазинами и пр., но на многих проектах регистрация просто не нужна.

Если не контролировать регистрацию, можно столкнуться с проблемами:

  • Спам-аккаунты, которые могут использоваться для рассылок или публикации нежелательного контента.
  • Нагрузка на сервер при массовой регистрации ботов.
  • Безопасностные риски из-за большого количества пользователей, особенно с правами, если настройки безопасности недостаточны.

Поэтому важно либо полностью отключить регистрацию, либо ограничить ее определенными способами.

Как отключить регистрацию пользователей через настройки WordPress

Самый простой способ запретить регистрацию — выключить опцию в административной панели:

  1. Перейдите в Консоль WordPressНастройкиОбщие.
  2. Найдите пункт Любой может зарегистрироваться и снимите галочку.
  3. Сохраните изменения.

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

Отключение регистрации пользователей с помощью кода в functions.php

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

function wpnews_disable_user_registration() {
    return false;
}
add_filter('registration_enabled', 'wpnews_disable_user_registration');

Фильтр registration_enabled в WordPress отвечает за разрешение регистрации. Возвращая false, мы блокируем возможность создавать новых пользователей.

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

Пример кода, который перенаправляет всех пользователей со страницы регистрации на главную страницу сайта:

function wpnews_redirect_registration_page() {
    if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php?action=register') !== false) {
        wp_redirect(home_url());
        exit();
    }
}
add_action('init', 'wpnews_redirect_registration_page');

Этот код проверяет URL и, если пользователь пытается открыть страницу регистрации, перенаправляет его на главную страницу. Таким образом, регистрация становится недоступной как через интерфейс сайта, так и через прямую ссылку.

Как отключить регистрацию для REST API

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

function wpnews_disable_rest_api_registration($prepared_args, $request) {
    if ($request->get_method() === 'POST' && $request->get_route() === '/wp/v2/users') {
        return new WP_Error('rest_forbidden', 'Регистрация пользователей запрещена.', array('status' => 403));
    }
    return $prepared_args;
}
add_filter('rest_pre_dispatch', 'wpnews_disable_rest_api_registration', 10, 2);

Этот код защищает сайт от регистрации через REST API, возвращая ошибку 403 при попытке создать нового пользователя.

Использование плагинов для отключения регистрации

Если вы не хотите вносить изменения в код, можно использовать плагины, которые дают гибкий контроль над регистрацией:

  • Disable User Registration — простой плагин для полного отключения регистрации. После активации регистрация становится невозможна.
  • WP Cerber Security — комплексный плагин безопасности с возможностью блокировки регистрации ботов и спам-аккаунтов, а также создания белых списков IP.
  • Stop User Registration — позволяет блокировать регистрацию, а также перенаправлять пользователей со страницы регистрации на выбранную страницу.

Все эти плагины можно найти в официальном репозитории WordPress и установить через панель администратора. Для примера, чтобы установить Disable User Registration:

  1. Перейдите в ПлагиныДобавить новый.
  2. Введите в поиске «Disable User Registration».
  3. Установите и активируйте плагин.

После активации регистрация будет полностью отключена без необходимости писать код.

Как вернуть регистрацию для определенных пользователей или условий

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

Пример ниже показывает, как разрешить регистрацию только если email пользователя заканчивается на @example.com:

function wpnews_validate_registration_email($errors, $sanitized_user_login, $user_email) {
    if (!empty($user_email) && !preg_match('/@example\.com$/', $user_email)) {
        $errors->add('invalid_email_domain', 'Регистрация разрешена только для домена example.com');
    }
    return $errors;
}
add_filter('registration_errors', 'wpnews_validate_registration_email', 10, 3);

В этом коде мы используем фильтр registration_errors, чтобы проверить email пользователя и при несоответствии добавить ошибку, которая блокирует регистрацию.

Выводы и рекомендации

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

Используйте фильтры registration_enabled, registration_errors и хуки, чтобы гибко управлять процессом регистрации. Также не забывайте о безопасности и защите от спама, в этом помогут плагины типа WP Cerber. Если вам нужно быстро отключить регистрацию, воспользуйтесь плагином Disable User Registration с WPSHOP.

Как избежать проблем с разрешениями файлов в WordPress
30.12.2025
Как запретить регистрацию пользователей в WordPress с помощью кода и плагинов
10.12.2025
Оптимизация базы данных WordPress: удаляем старые ревизии и чистим базу
15.11.2025
Как создать автоматическое резервное копирование WordPress
02.12.2025
Как отложить публикацию постов в WordPress
19.01.2026