下の画像は“投稿者”権限のユーザーでログインした際の管理画面左メニューの状態です。
メインメニューを非表示にする
左メニューの全てを非表示にするためにテーマのfunctions.phpに以下を追記します。
1 2 3 4 5 6 7 8 9 10 11 12 |
// 管理画面サイドバーメニュー非表示 function remove_menus () { if (current_user_can('author')) { //投稿者の場合 remove_menu_page('index.php'); // ダッシュボード remove_menu_page('edit.php'); // 投稿 remove_menu_page('upload.php'); // メディア remove_menu_page('edit-comments.php'); // コメント remove_menu_page('profile.php'); // プロフィール remove_menu_page('tools.php'); // ツール } } add_action('admin_menu', 'remove_menus'); |
これで投稿者権限のユーザーでログインすると左メニューが何もない状態になります。
左メニューを何もない状態にすることは少ないと思うので表示しておきたい部分はコメントアウト、もしくは削除することでメニューに表示することができます。
ifの条件部分はいろいろと指定することができます。
!current_user_can(‘level_10’)
とすればレベル10以下のユーザー全てに適用することができます。
ユーザーの種類についてはWordPress Codex日本語版に記載されています。
remove_menu_page(‘index.php’);
のindex.phpの部分はメニューのファイル名になるので上記以外、例えば「外観」だったら“themes.php”を指定することで「外観」を非表示にすることができます。
サブメニューを非表示にする
サブメニューを持つ項目のサブメニューだけを消したい場合もあると思います。
その場合はremove_menu_pageの部分を以下のように記述します。
1 |
remove_submenu_page('edit.php','post-new.php'); |
remove_submenu_page(‘edit.php’,’post-new.php’);
上記は「投稿」→「新規投稿」を非表示にしてます。
remove_submenu_page(‘メインメニュー’,’サブメニュー’);
と記載することでサブメニューだけを消すことができます。
これらは表示を消しただけでアクセスできないわけではありません。
操作そのものも制御する場合はUser Role Editorなどを使って操作そのものも制御しましょう。