Intereting Posts
Как добавить атрибут HTML5 'required' к wp_dropdown_categories () без JavaScripts? Лучший способ загрузки контента на мобильный – проблема с wp_is_mobile wp_list_pages изменение <ul> дочерних элементов и привязка родительского элемента Сила 404 перенаправляется на родину? Пользовательские поля (wp_post_meta) и пользовательская таблица для большого количества данных Resolved – category-slug.php не работает после миграции wordpress как я могу разработать глобальную навигацию и локальную навигацию, чтобы быть динамикой WordPress? Индивидуальные расценки для категорий Использование цикла для отображения терминов, связанных с сообщением связанный php-файл, не выполняющий php Как получить доступ к данным wp_usermeta сразу после создания нового пользователя Какие функции использует WordPress для фильтрации / дезинфекции комментариев? Есть ли крючки для комментариев? Как проверить, присутствует ли я в предварительном настройке WP Theme Customizer? Как разрешить запланированные сообщения, которые говорят «Пропущенный график»,

Как включить не-пользователей в перенаправление wp-admin?

Я добавил это в свой список functions.php, чтобы ограничить доступ к wp-admin без доступа администратора, перенаправляя не-admin на домашнюю страницу. Однако это не работает для пользователей, которые не являются пользователями (пользователи, которые не вошли в систему).

Как включить посетителей, которые не являются пользователями этого скрипта?

/** * Restrict access to the administration screens. * * Only administrators will be allowed to access the admin screens, * all other users will be automatically redirected to the front of * the site instead. * * We do allow access for Ajax requests though, since these may be * initiated from the front end of the site by non-admin users. */ function restrict_admin_with_redirect() { if ( ! current_user_can( 'manage_options' ) && ( ! wp_doing_ajax() ) ) { wp_redirect( site_url() ); exit; } } add_action( 'admin_init', 'restrict_admin_with_redirect', 1 ); 

FYI: я создал пользовательскую форму регистрации на странице, отличной от wp-admin, поэтому это не будет блокировать администратора

EDIT 2: это в файле functions.php, который может усложнять проблему, поскольку, когда не пользователь обращается к wp-admin, сервер обрабатывает этот доступ как неудачную попытку входа в систему и перенаправляет пользователя на " отказал ", а не 404

 /** * Redirect user on invalid log-in attempts */ function login_failed() { $login_page = home_url( '/access-denied' ); wp_redirect( $login_page . '?login=failed' ); exit; } add_action( 'wp_login_failed', 'login_failed' ); function verify_username_password( $user, $username, $password ) { $login_page = home_url( '/access-denied' ); if( $username == "" || $password == "" ) { wp_redirect( $login_page . "?login=empty" ); exit; } } add_filter( 'authenticate', 'verify_username_password', 1, 3); 

Вы можете сделать что-то подобное, чтобы перенаправить всех, которые входят в wp-login.php

Обратите внимание, что его переадресация происходит только тогда, когда запрос GET, поэтому вы все равно можете войти, если вы разместите там сообщение. его в том случае, если вы используете этот wp-login.php с вашей пользовательской страницей входа.

 function login_page_redirect() { $redirect_to = "http://google.com"; // url where to redirect $page = strtok(basename($_SERVER['REQUEST_URI']), "?"); if( $page == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') { wp_redirect($redirect_to); exit; } } add_action('init','login_page_redirect'); 

Просто добавьте это в:

 if ( (!current_user_can( 'manage_options' ) && !wp_doing_ajax() ) || (!is_user_logged_in()) )