管理者以外のユーザーが「ダッシュボード」リンクを表示できないように、またはメインの「wp-admin/index.php」ページにアクセスできないように設定しました。管理者以外のユーザーが新しいページを作成することを制限する プラグインも追加しました 。管理者以外のユーザーが新しいページを追加しようとすると、誤って "wp-admin/index.php?permissions_error = true"にリダイレクトされます。 "wp-admin/index.php"、または "ダッシュボード"ページ。
Wp-admin/index.php(メインダッシュボードページ)へのアクセスを制限する、またはそれらをwp-admin/profile.phpページにリダイレクトするにはどうすればよいですか。
私が達成しようとしていることのスクリーンショット: URLアドレスの "wp-admin/index.php"の横に "?permissions_error = true"を追加するほど賢い人がいれば、メインのダッシュボードページ "wp-admin/index.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
にフックし、機能を確認してからページを削除します。
add_action('admin_menu', 'wpse206466_remove_index');
function wpse206466_remove_index()
{
if (!_wpse206466_can_view()) {
remove_menu_page('index.php');
}
}