По умолчанию страница регистрации WordPress доступна по адресу wp-login.php?action=register. Это не всегда удобно или безопасно, особенно если вы хотите скрыть стандартный URL регистрации от ботов или сделать сайт более уникальным. В этой статье разберём, как изменить URL страницы регистрации WordPress без плагинов, используя собственный код и хуки.
Почему стоит менять URL регистрации WordPress
Стандартный URL регистрации легко найти, что может привести к спаму, нежелательным регистрациям и даже атакам на сайт. Смена адреса снижает риск автоматических регистраций и делает пользовательский опыт более индивидуальным. Кроме того, это полезно для сайтов с приватной регистрацией или закрытым сообществом.
Изменить URL регистрации можно разными способами, но мы рассмотрим именно метод без плагинов, который не нагружает сайт и позволяет гибко контролировать поведение.
Как изменить URL регистрации с помощью функции и хуков WordPress
Для этого нам нужно переопределить обработку запросов, чтобы WordPress понимал новый URL как страницу регистрации, а также перенаправить стандартные запросы.
Шаг 1. Добавим новый rewrite rule
Добавим правило перезаписи, чтобы WordPress распознавал новый URL. Например, пусть регистрация будет доступна по адресу /register-new/.
function wpdream_add_register_rewrite_rule() {
add_rewrite_rule('^register-new/?$', 'wp-login.php?action=register', 'top');
}
add_action('init', 'wpdream_add_register_rewrite_rule');После добавления этого кода нужно обновить правила перезаписи (перейти в Настройки –> Постоянные ссылки и нажать «Сохранить изменения» без изменений).
Шаг 2. Перенаправим стандартный URL регистрации на новый
Чтобы избежать доступа к wp-login.php?action=register, сделаем редирект на новый URL:
function wpdream_redirect_old_register_url() {
$request_uri = $_SERVER['REQUEST_URI'];
if (strpos($request_uri, 'wp-login.php') !== false && isset($_GET['action']) && $_GET['action'] === 'register') {
wp_redirect(site_url('register-new/'));
exit;
}
}
add_action('init', 'wpdream_redirect_old_register_url');Теперь все запросы к старой странице регистрации будут автоматически перенаправлены на /register-new/.
Шаг 3. (Опционально) Скрываем ссылку на регистрацию с формы входа
Чтобы не показывать стандартную ссылку на регистрацию, можно убрать её из формы входа:
function wpdream_remove_register_link($login_url, $redirect, $force_reauth) {
return site_url('wp-login.php');
}
add_filter('register_url', 'wpdream_remove_register_link', 10, 3);После этого в форме входа ссылка на регистрацию будет вести на страницу входа без параметра регистрации.
Проверка и отладка
После добавления кода и обновления правил перезаписи:
- Перейдите по адресу
https://ваш-сайт/register-new/. Должна открыться форма регистрации. - Попробуйте зайти по старому адресу
wp-login.php?action=register. Вы должны быть автоматически перенаправлены на новый URL. - Проверьте, что форма регистрации корректно работает и новые пользователи могут регистрироваться без проблем.
Если что-то не работает, очистите кеш сайта и браузера, проверьте ошибки в логах сервера.
Заключение
Изменение URL страницы регистрации WordPress без плагина — отличное решение для повышения безопасности и кастомизации сайта. Этот способ не требует установки дополнительных расширений и легко поддерживается в коде темы или плагина.
Вы можете модифицировать его под свои нужды, например, менять адрес регистрации на любой другой, добавлять защиту через капчу или ограничивать доступ к регистрации.
Используйте приведённые функции как основу для своих доработок, и ваш сайт станет более уникальным и защищённым.