Переназначьте пользователей, не являющихся администраторами, из wp-admin / index.php (страница главной панели) в wp-admin / profile.php

Я установил его так, чтобы пользователь, не являющийся администратором, не мог видеть ссылку «Dashboard» или не мог получить доступ к главной странице «wp-admin / index.php». Я также добавил плагин, который ограничивает пользователей, не являющихся администраторами, от создания новой страницы . Всякий раз, когда пользователи, не являющиеся администраторами, пытаются добавить новую страницу, они будут случайно перенаправлены на « wp-admin / index.php? Permissions_error = true », который является основным « wp-admin / index.php » или « wp-admin / index.php », Dashboard ".

Как ограничить доступ к странице wp-admin / index.php (главная страница панели мониторинга) или перенаправить их на страницу wp-admin / profile.php?

скриншот того, что я пытаюсь достичь: Если кто-то был достаточно умен, чтобы добавить «? Permissions_error = true» в следующий раз «wp-admin / index.php» в URL-адресе, он получит доступ к главной странице панели управления «wp-admin / index.php», даже если у них нет разрешения.

  • Я попытался добавить «Перенаправление 301 /localhost/ft/wp-admin/index.php?permissions_error=true http://google.com » в файл .htaccess, но он не работает из-за «? Permissions_error = true "

Solutions Collecting From Web of "Переназначьте пользователей, не являющихся администраторами, из wp-admin / index.php (страница главной панели) в wp-admin / profile.php"

Самое простое решение – подключить load-index.php и перенаправить пользователей, не являющихся администраторами, в свой профиль. Эффективное блокирование доступа к этой странице. Я собираюсь завершить проверку разрешений в функции для этого примера (мы будем использовать ее более одного раза).

 function _wpse206466_can_view() { // or any other admin level capability return current_user_can('manage_options'); } add_action('load-index.php', 'wpse206466_load_index'); function wpse206466_load_index() { if (!_wpse206466_can_view()) { $qs = empty($_GET) ? '' : '?'.http_build_query($_GET); wp_safe_redirect(admin_url('profile.php').$qs); exit; } } 

Вы также можете удалить страницу индекса администратора из меню администратора, если пользователи не могут получить к ней доступ. Для этого admin_menu в admin_menu , проверьте возможность удаления страницы.

 add_action('admin_menu', 'wpse206466_remove_index'); function wpse206466_remove_index() { if (!_wpse206466_can_view()) { remove_menu_page('index.php'); } } 

Вот и все это как плагин .