В некоторых случаях администраторы сайтов на WordPress сталкиваются с необходимостью отключить возможность регистрации новых пользователей. Это особенно актуально для сайтов, где регистрация не предусмотрена или должна быть ограничена. В этой статье мы рассмотрим, как запретить регистрацию в WordPress, удалить форму регистрации из стандартных мест и обеспечить безопасность сайта от нежелательных регистраций.
Почему важно отключать регистрацию пользователей
Регистрация новых пользователей по умолчанию включена в WordPress, если в настройках сайта активирована соответствующая опция. Это может привести к появлению спам-аккаунтов, загрузке базы данных ненужными пользователями и потенциальным угрозам безопасности. Если вы не планируете использовать регистрацию, отключение этой функции снижает риски и упрощает управление сайтом.
Кроме того, удаление или скрытие формы регистрации помогает избежать путаницы у посетителей и сохраняет интерфейс сайта более аккуратным.
Как отключить регистрацию в настройках WordPress
Самый простой способ запретить регистрацию — отключить её в панели управления WordPress. Для этого:
- Перейдите в раздел Настройки → Общие.
- Найдите опцию Любая регистрация (Allow anyone to register).
- Снимите галочку с этой опции.
- Сохраните изменения.
После этого стандартная форма регистрации перестанет работать. Однако ссылка на регистрацию может оставаться в некоторых темах или плагинах, поэтому стоит дополнительно удалить её отображение.
Удаление формы регистрации из видимых мест
Даже после отключения регистрации в настройках, форма или ссылка на регистрацию может присутствовать в виджетах, меню или на странице входа. Рассмотрим, как убрать их программно.
Удаление ссылки «Регистрация» из меню и виджетов
Если в вашем меню или виджетах используется ссылка на регистрацию, её можно удалить через функции темы. Добавьте следующий код в файл functions.php вашей активной темы или в плагин для кастомных функций:
function wpdir_remove_register_link($items, $args) {
if ($args->theme_location === 'primary') { // Замените 'primary' на вашу локацию меню
foreach ($items as $key => $item) {
if (strpos($item->url, 'wp-login.php?action=register') !== false) {
unset($items[$key]);
}
}
}
return $items;
}
add_filter('wp_nav_menu_objects', 'wpdir_remove_register_link', 10, 2);Этот код удалит ссылку на регистрацию из основного меню. При необходимости подкорректируйте 'primary' на нужное местоположение меню.
Перенаправление с /wp-login.php?action=register на главную или страницу 404
Чтобы полностью заблокировать доступ к странице регистрации, можно использовать перенаправление. Добавьте в functions.php следующий код:
function wpdir_block_registration_page() {
if (isset($_GET['action']) && $_GET['action'] === 'register') {
wp_redirect(home_url());
exit;
}
}
add_action('login_init', 'wpdir_block_registration_page');Этот код перенаправит всех пользователей со страницы регистрации на главную страницу сайта.
Использование плагинов для ограничения регистрации
Если вы предпочитаете не редактировать код, можно использовать плагины, которые обеспечивают гибкий контроль над регистрацией.
- Disable User Registration — простой плагин для отключения регистрации без лишних настроек.
- WP Cerber Security — комплексный плагин безопасности, который позволяет блокировать регистрацию, ограничивать доступ и защищать сайт от спама.
- Clearfy Pro — плагин оптимизации, в котором есть модуль для отключения регистрации и других ненужных функций WordPress. Подробнее о Clearfy Pro на официальном сайте.
Как временно запретить регистрацию с помощью капчи и проверки
Если вам не нужно полностью отключать регистрацию, а требуется только фильтрация спам-ботов, можно добавить капчу или дополнительные проверки.
Например, с помощью плагина reCAPTCHA by BestWebSoft можно легко добавить Google reCAPTCHA на форму регистрации, что значительно снизит количество спам-аккаунтов.
Для реализации более кастомного решения, можно использовать хук register_post для валидации данных при регистрации:
function wpdir_custom_registration_validation($login, $email, $errors) {
// Пример проверки: запретить регистрацию с определенным доменом почты
if (strpos($email, '@spamdomain.com') !== false) {
$errors->add('email_blocked', __('Регистрация с этого домена запрещена.'));
}
}
add_action('register_post', 'wpdir_custom_registration_validation', 10, 3);<Удаление виджетов и форм регистрации из плагинов и тем
Если у вас на сайте используются плагины или темы с собственной регистрацией, их формы нужно отключать отдельно.
Например, если в теме или плагине используется виджет регистрации, его можно удалить с помощью функции:
function wpdir_unregister_registration_widgets() {
unregister_widget('WP_Widget_Registration'); // Замените на реальное имя виджета
}
add_action('widgets_init', 'wpdir_unregister_registration_widgets', 11);Также проверьте страницы с шорткодами регистрации и удалите их или замените на информацию для пользователей.
Итоги и рекомендации
Отключение регистрации в WordPress — довольно простая задача, но требует внимания к деталям, чтобы полностью убрать все следы формы регистрации и ссылок на неё. Используйте стандартные настройки для базового отключения, дополните их кодом для удаления ссылок и перенаправлений, а при необходимости — подключайте проверенные плагины.
Если вы хотите комплексный инструмент для оптимизации и защиты сайта, обратите внимание на Clearfy Pro, который поможет отключить регистрацию и решить множество других технических задач без лишнего кода.