WordPressを使用して情報等を更新できるサイトやブログを構築した際に、
管理画面のメニューで使わないものや変更されると困るというメニューがあります。
お客様に管理画面の情報を渡す場合などは特にそう思います。
そのような場合は、使わない(変更しない)メニューを非表示にしてしまうのがいいと思います。
ユーザーの権限(レベル)によって、使用できる項目を絞ることができますが、
独自で使用できるメニューを決めたい場合があります。
下記にWordPressで管理画面の使わないメニューを非表示した時の方法を記載します。
色々なサイトで記載されていますが、メモ用に記事にします。
■ 管理画面の使わないメニューを非表示にする
使用しているテーマの「functions.php」を編集します。
「functions.php」に下記のコードを追加します。
// 使用しないメニューを非表示にする
function remove_admin_menus() {
// level10以外のユーザーの場合
if (!current_user_can('level_10')) {
global $menu;
// unsetで非表示にするメニューを指定
unset($menu[2]); // ダッシュボード
unset($menu[5]); // 投稿
unset($menu[10]); // メディア
unset($menu[20]); // 固定ページ
unset($menu[25]); // コメント
unset($menu[60]); // 外観
unset($menu[65]); // プラグイン
unset($menu[70]); // ユーザー
unset($menu[75]); // ツール
unset($menu[80]); // 設定
}
}
add_action('admin_menu', 'remove_admin_menus');
「current_user_can()」でユーザーのレベルを指定します。
‘level_10’で管理者以外のユーザーに対して非表示の設定をしています。
必要がなければif文を削除してもOKです。
「unset()」で非表示にしたい項目を指定します。
unset($menu[2]); // ダッシュボード
unset($menu[5]); // 投稿
unset($menu[10]); // メディア
unset($menu[20]); // 固定ページ
unset($menu[25]); // コメント
unset($menu[60]); // 外観
unset($menu[65]); // プラグイン
unset($menu[70]); // ユーザー
unset($menu[75]); // ツール
unset($menu[80]); // 設定
※上記以外にもメニューの項目はあります。
投稿と固定ページ以外を非表示にした場合、
下記のようになります。
// 使用しないメニューを非表示にする
function remove_admin_menus() {
// level10以外のユーザーの場合
if (!current_user_can('level_10')) {
global $menu;
// unsetで非表示にするメニューを指定
unset($menu[2]); // ダッシュボード
unset($menu[10]); // メディア
unset($menu[25]); // コメント
unset($menu[60]); // 外観
unset($menu[65]); // プラグイン
unset($menu[70]); // ユーザー
unset($menu[75]); // ツール
unset($menu[80]); // 設定
}
}
add_action('admin_menu', 'remove_admin_menus');
■ 「Contact Form 7」を使用している場合
プラグインで「Contact Form 7」を使用していて、
メニューから非表示にしたい場合は下記を追加します。
// 使用しないメニューを非表示にする
function remove_admin_menus() {
// level10以下のユーザの場合
if (!current_user_can('level_10')) {
// 「Contact Form 7」を使用している場合
remove_menu_page('wpcf7');
}
}
add_action('admin_menu', 'remove_admin_menus');
下記ページの内容を参考にさせていただきました。
Customizing Your WordPress Admin
お客様に提供したり、複数の人で操作する場合などは、
必要になる場合があるかもしれないです。
また、今回はメニューを非表示にしただけなので、直接アクセスした場合は
ページが表示されてしますので注意してください。