В ряде случаев владельцам сайтов на WordPress требуется ограничить возможность регистрации новых пользователей. Это может быть связано с необходимостью предотвращения спама, контролем числа пользователей или просто с желанием закрыть сайт для новых регистраций. В этой статье разберём несколько способов, как запретить регистрацию новых пользователей в WordPress с помощью кода и плагинов, а также рассмотрим практические примеры.
Почему важно контролировать регистрацию пользователей в WordPress
По умолчанию WordPress позволяет открывать регистрацию пользователей, что удобно для публичных сайтов и сообществ. Однако открытая регистрация часто становится причиной:
- рассылки спама и регистрации ботов;
- нежелательных пользователей, которые могут создавать нагрузку;
- безопасностных рисков, связанных с большим числом пользователей с разными уровнями доступа.
Поэтому важно иметь возможность быстро отключить или ограничить регистрацию, когда это необходимо.
Способ 1. Отключение регистрации через настройки WordPress
Самый простой и первый способ — это отключить регистрацию через стандартные настройки WordPress:
- В админке перейдите в меню Настройки > Общие.
- Найдите опцию Членство — параметр "Любой может зарегистрироваться".
- Снимите галочку с этой опции и сохраните изменения.
Этот способ эффективен и не требует вмешательства в код, однако если вы хотите полностью убрать ссылки на регистрацию или запретить регистрацию программно, нужны дополнительные решения.
Способ 2. Запрет регистрации через файл functions.php
Если в теме активна функция регистрации, можно добавить код, который при попытке регистрации будет блокировать процесс и показывать сообщение об ошибке. Вставьте следующий код в файл functions.php вашей активной темы или в плагин с пользовательскими функциями:
function wpteam_disable_user_registration() {
if ( isset($_GET['action']) && $_GET['action'] === 'register' ) {
wp_die('Регистрация новых пользователей временно запрещена.');
}
}
add_action('login_init', 'wpteam_disable_user_registration');
Этот код проверяет, если пользователь пытается открыть страницу регистрации, и блокирует её с выводом сообщения. Это простой способ запрета регистрации без удаления формы.
Способ 3. Удаление ссылки на регистрацию из формы входа
Чтобы пользователи не видели ссылку "Регистрация" на странице входа, можно добавить CSS или фильтр для скрытия этой ссылки:
function wpteam_remove_register_link($link) {
return '';
}
add_filter('register', 'wpteam_remove_register_link');
Однако более надёжный способ — использовать CSS, если тема выводит ссылку через класс. Например:
function wpteam_hide_register_link_css() {
echo '<style>.register-link { display:none !important; }</style>';
}
add_action('login_enqueue_scripts', 'wpteam_hide_register_link_css');
Этот код скроет ссылку визуально, но реально регистрацию он не отключает.
Способ 4. Использование плагинов для управления регистрацией
Если вы предпочитаете готовые решения, можно воспользоваться плагинами, которые позволяют гибко управлять регистрацией:
- Disable User Registration — простой плагин для полного отключения регистрации.
- Clearfy Pro — мощный инструмент оптимизации и безопасности, который позволяет отключать регистрацию, а также управлять другими функциями сайта.
- WPRemark — плагин с расширенными возможностями управления комментариями и регистрацией.
Плагины часто предоставляют GUI для настройки и дополнительные опции, например, запрет регистрации по IP, капчу, подтверждение по email и т.д.
Способ 5. Запрет регистрации через фильтр регистрации пользователей
Можно программно запретить регистрацию, возвращая ошибку при попытке добавить нового пользователя. Для этого воспользуемся фильтром registration_errors:
function wpteam_block_user_registration($errors, $sanitized_user_login, $user_email) {
$errors->add('registration_disabled', __('Регистрация новых пользователей отключена на данном сайте.'));
return $errors;
}
add_filter('registration_errors', 'wpteam_block_user_registration', 10, 3);
Этот код блокирует регистрацию, выдавая ошибку на странице регистрации. Это надёжный способ, который работает даже если форма регистрации доступна.
Рекомендации по выбору способа
Если вам нужно просто быстро отключить регистрацию — используйте настройку в админке. Если хотите полностью убрать возможность регистрации и форму — комбинируйте методы с кодом. Для более сложного управления регистрируйтесь в качестве пользователей с разными ролями или добавьте подтверждение через плагины.
Для примера, если вы используете тему Root — добавьте код из способа 2 в её дочернюю тему, чтобы не потерять изменения при обновлении.
Выводы
Запрет регистрации новых пользователей в WordPress — важная задача для многих сайтов. Вариантов решения много, от простого отключения в настройках до программных ограничений через хуки и фильтры. При необходимости можно использовать плагины, например, Clearfy Pro, которые расширяют возможности управления регистрацией и безопасностью.
Экспериментируйте с методами, выбирайте подходящий для вашего сайта, и ваш WordPress будет работать надёжно без нежелательных регистраций.