Вопрос или проблема
Как и где я могу сделать функцию, которая будет перенаправлять пользователя (если он не администратор) на мой конкретный URL?
(то же самое – когдаLogged user вводит URL /wp-admin.)
Все функции размещаются в functions.php
вашего шаблона. И создайте перенаправление на крючке template_redirect
.
add_action('template_redirect', 'make_redirect');
function make_redirect() {
if ( ! is_admin() && ! current_user_can( 'administrator' ) ) {
wp_redirect( 'https://google.com' );
}
}
.
Ответ или решение
Чтобы реализовать перенаправление пользователя, который не является администратором, на определенный URL после входа в систему и при попытке доступа к /wp-admin
, вам нужно внести некоторые изменения в файл functions.php
вашей темы WordPress. Это перенаправление должно обрабатываться с использованием хука template_redirect
. Ниже представлен детализированный ответ на ваш вопрос с учетом всех нюансов.
Шаги для реализации перенаправления
-
Открытие файла functions.php: Найдите файл
functions.php
в папке вашей активной темы. Обычно он располагается по путиwp-content/themes/ваша_тема/functions.php
. -
Добавление кода в functions.php: Вставьте следующий код в файл
functions.php
. Это будет ваша функция для перенаправления.
add_action('template_redirect', 'redirect_non_admin_users');
function redirect_non_admin_users() {
// Проверка, является ли пользователь администратором
if ( ! current_user_can( 'administrator' ) && is_admin() ) {
// Перенаправление на указанную страницу
wp_redirect( 'https://your-specific-url.com' );
exit; // Не забудьте вызвать exit после wp_redirect для предотвращения дальнейшего исполнения кода
}
}
Детализация кода
-
add_action(‘template_redirect’, ‘redirect_non_admin_users’); — данный код регистрирует вашу функцию
redirect_non_admin_users
для выполнения на стадииtemplate_redirect
, что означает, что она будет вызвана перед рендерингом шаблона. -
current_user_can(‘administrator’) — это условие проверяет, является ли текущий пользователь администратором. Если нет, и если пользователь пытается получить доступ к административной панели (т.е.
is_admin()
возвращаетtrue
), выполняется перенаправление. -
wp_redirect( ‘https://your-specific-url.com‘ ); — функция
wp_redirect
используется для перенаправления пользователя на указанный URL. Убедитесь, что заменилиhttps://your-specific-url.com
на ваш желаемый адрес. -
exit; — очень важно вызывать
exit
сразу послеwp_redirect
, чтобы остановить дальнейшее выполнение скрипта. Это предотвратит возможные ошибки или нежелательные результаты после перенаправления.
Проверка работоспособности
После внесения изменений сохраните файл и протестируйте функцию, войдя в систему под пользователем, который не имеет прав администратора. Попробуйте также ввести /wp-admin
в адресной строке вашего браузера, чтобы убедиться, что перенаправление срабатывает корректно.
Заключение
Создание функции перенаправления для неадминистраторов — это простой, но эффективный способ управления доступом к административной панели вашего сайта WordPress. Следуя приведенным инструкциям, вы сможете поддерживать безопасность вашего сайта и управлять пользовательским опытом в соответствии с вашими требованиями. Не забывайте всегда делать резервные копии ваших файлов перед внесением изменений, чтобы предотвратить возможные проблемы.