В некоторых случаях на сайте WordPress необходимо запретить регистрацию новых пользователей. Причины могут быть разными: сайт используется только для публикации контента, регистрация не нужна или вы хотите ограничить доступ к сайту. Часто для этого используют плагины, но сегодня мы рассмотрим, как запретить регистрацию в WordPress без плагинов, используя простой и эффективный код.
Почему стоит запретить регистрацию в WordPress
По умолчанию WordPress позволяет посетителям регистрироваться, если в настройках активирована эта функция. Однако открытая регистрация может привести к проблемам:
- Ненужные пользователи и спам-аккаунты.
- Увеличенная нагрузка на сервер.
- Проблемы с безопасностью, если регистрация не контролируется.
Если вы не планируете использовать регистрацию, лучше полностью её отключить, чтобы избежать лишних хлопот.
Как отключить регистрацию в настройках WordPress
Самый простой способ — зайти в админку, в разделе Настройки > Общие и снять галочку с пункта Любой может зарегистрироваться. Но иногда этого недостаточно, например, если тема или плагины предоставляют собственные формы регистрации. В таких случаях поможет кодовое решение.
Запрет регистрации через редирект страницы регистрации
Чтобы полностью заблокировать доступ к странице регистрации, можно сделать перенаправление всех запросов на неё на главную страницу или страницу 404. Добавьте следующий код в файл functions.php вашей темы или в функциональный плагин:
function wp24_redirect_register() {
if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php?action=register') !== false) {
wp_redirect(home_url());
exit();
}
}
add_action('init', 'wp24_redirect_register');Этот код проверяет, пытается ли пользователь открыть страницу регистрации (wp-login.php?action=register), и перенаправляет его на главную страницу.
Отключение регистрации программно через фильтр
WordPress предоставляет фильтр registration_enabled, который позволяет отключить регистрацию на уровне ядра. Используйте следующий код:
function wp24_disable_registration() {
return false;
}
add_filter('registration_enabled', 'wp24_disable_registration');Этот фильтр гарантирует, что регистрация будет отключена во всех местах, где проверяется возможность регистрации.
Блокировка регистрации на фронтенде и в REST API
Если на сайте есть собственные формы регистрации или регистрация через REST API, то важно заблокировать и эти способы. Для REST API можно добавить проверку на разрешение регистрации:
function wp24_block_rest_registration($result, $server, $request) {
if (isset($request['register']) && $request['register'] === true) {
return new WP_Error('registration_disabled', 'Регистрация пользователей отключена', array('status' => 403));
}
return $result;
}
add_filter('rest_authentication_errors', 'wp24_block_rest_registration', 10, 3);<Для форм на фронтенде, если они реализованы самостоятельно, добавьте проверку перед созданием пользователя:
if ( ! apply_filters('registration_enabled', true) ) {
wp_die('Регистрация пользователей отключена');
}Использование плагина Clearfy Pro для управления регистрацией
Если вы хотите упростить управление функциями сайта, в том числе регистрацию, рекомендуем обратить внимание на плагин Clearfy Pro. Он позволяет гибко отключать регистрацию, управлять доступом и оптимизировать сайт без необходимости писать код.
Выводы и рекомендации
Запрет регистрации в WordPress — частая задача для владельцев сайтов, желающих контролировать доступ. Лучший способ — отключить регистрацию в настройках и дополнительно заблокировать страницы регистрации программно. В сочетании с фильтрами и редиректами вы надёжно защитите сайт от нежелательных регистраций. Для простоты и расширенного контроля можно использовать профессиональные плагины, например Clearfy Pro.