管理者権限が無い購読者とかに対して、管理画面上の左のメニューを削除するには、

管理画面メニュー

add_action(‘admin_init’, ‘remove_menus’);
function remove_menus(){
if(!current_user_can(‘edit_posts’)){ //編集権限が無い場合、以下のメニューを削除
remove_menu_page(‘index.php’); //ダッシュボード
remove_menu_page(‘separator1’); //区切り線
remove_menu_page(‘profile.php’); //プロフィール
remove_menu_page(‘separator2’); //区切り線

}
}

と書けばOKです。

管理画面のメニュー削除後

しかし、http://hoge.com/index.php などと直接ダッシュボードのURLを打ち込まれると、メニューから削除してるだけなので実行出来てしまいます。これを防ぐには、更にコードを追加する必要があります。

add_action(‘admin_init’, ‘remove_menus’);
function remove_menus(){
if(!current_user_can(‘edit_posts’)){
remove_menu_page(‘index.php’);
remove_menu_page(‘separator1’);
remove_menu_page(‘profile.php’);
remove_menu_page(‘separator2’);

$r_url = $_SERVER[“REQUEST_URI”]; //実行URLを取得
if(
$r_url == “/wp-admin/index.php” || //ダッシュボードのURL
$r_url == “/wp-admin/” || //ダッシュボードのURL
$r_url == “/wp-admin/profile.php” //プロフィールのURL
){
wp_redirect( get_home_url() ); //サイトのトップページへリダイレクト
}

}
}

これで、管理者以外には、管理画面のメニューにも表示されないし、メニュー自体が実行出来ないようになります。

 

スポンサー

お問い合わせ

この記事についてご質問があれば、お問い合わせ下さい。

お名前(必須)
お名前フリガナ(必須)
メールアドレス(必須)
メールアドレス確認(必須)
お問い合わせ記事URL
お問い合わせ内容(必須)