管理者以外は、プラグイン、ユーザーなどのメニューを非表示にする
WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。
管理者以外の、編集者や投稿者には、非表示にしておきたいメニューがある。
ついでに、プラグインで追加されるメニューも、非表示にしたい。
functions.php へ記述
//管理画面の左のメニュー非表示
if (!current_user_can('administrator')) {
function remove_menus() {
remove_menu_page('index.php'); // ダッシュボード
remove_menu_page('separator1'); // セパレータ1
// remove_menu_page('edit.php'); // 投稿
// remove_menu_page('upload.php'); // メディア
remove_menu_page('link-manager.php'); // リンク
// remove_menu_page('edit.php?post_type=page'); // 固定ページ
// remove_menu_page('edit-comments.php'); // コメント
remove_menu_page('separator2'); // セパレータ2
remove_menu_page('themes.php'); // 外観
remove_menu_page('plugins.php'); // プラグイン
// remove_menu_page('users.php'); // ユーザー
remove_menu_page('tools.php'); // ツール
remove_menu_page('wpcf7');//plug-in contact form7
// remove_menu_page('options-general.php'); // 設定
// remove_menu_page('profile.php'); // プロフィール(管理者以外のユーザー用)
}
add_action('admin_menu', 'remove_menus');
}「//」を頭につけると、コメントアウトなので、メニューからは削除されない。
上の例でいくと、例えば、「ユーザー」も非表示にしたいなら、
// remove_menu_page('users.php'); // ユーザー↓
remove_menu_page('users.php'); // ユーザーと、頭の//を削除すればいい。
プラグインでアドミンバー(上)追加されたメニューを非表示にする方法
プラグインで追加されたメニューを削除するための引数(例えば、wpcf7 みたいな)を確認したいのであれば、
管理バーに追加されたメニューの場合は
global $wp_admin_bar;
の直後に
var_dump( $wp_admin_bar );
と記入したら見えるので、確認できる。
なお、サイドに追加されたメニューの場合は、別途
global $menu; var_dump( $menu );
と記入。
プラグインなどで勝手に追加されるメニューのIDを調べる方法
<管理バーに追加されたメニューのID確認>
functions.phpへ
function check_adminbar_id() {
global $wp_admin_bar;
var_dump($wp_admin_bar);
}
add_action( 'admin_menu', 'check_adminbar_id' );<サイドに追加されたメニューのID確認>
functions.phpへ
function check_sidemenu_id() {
global $menu;
var_dump( $menu );
}
add_action( 'admin_menu', 'check_sidemenu_id' );これらを書いて、ページ(ソース)を見ると
array(数字) {[0]->string(数字)"メニューの単語"[1]=>string(数字)"スラッグ"......}って感じの文字の羅列が見えるので、
“メニューの単語” の前にある array(数字) の数字が”メニューの単語”のIDになっている。
引数が分かれば、
remove_menu_page('調べた引数');で非表示にできる。


