ユーザー権限によってメニューの項目を変えたいときなど、管理バー(アドミンバー)のメニューを削除する必要がある時のカスタマイズ方法です。
管理バーのメニューを削除する
管理バーのメニュー削除は下記ようなコードをfunctions.php
に記入します。
function aktk_remove_bar_menus( $wp_admin_bar ) {
$wp_admin_bar->remove_menu( '[メニューID]' );
}
add_action( 'admin_bar_menu', 'aktk_remove_bar_menus', 99 );
各メニューの削除は下記になります。
function aktk_remove_bar_menus( $wp_admin_bar ) {
//WordPressアイコン
$wp_admin_bar->remove_menu( 'wp-logo' );
//WordPressアイコン -> WordPress について
$wp_admin_bar->remove_menu( 'about' );
//WordPressアイコン -> WordPress.org
$wp_admin_bar->remove_menu( 'wporg' );
//WordPressアイコン -> ドキュメンテーション
$wp_admin_bar->remove_menu( 'documentation' );
//WordPressアイコン -> サポートフォーラム
$wp_admin_bar->remove_menu( 'support-forums' );
//WordPressアイコン -> フィードバック
$wp_admin_bar->remove_menu( 'feedback' );
//サイト情報
$wp_admin_bar->remove_menu( 'site-name' );
//サイト情報 -> ダッシュボード
$wp_admin_bar->remove_menu( 'dashboard' );
//サイト情報 -> テーマ
$wp_admin_bar->remove_menu( 'themes' );
//サイト情報 -> ウィジェット
$wp_admin_bar->remove_menu( 'widgets' );
//サイト情報 -> メニュー
$wp_admin_bar->remove_menu( 'menus' );
//サイト情報 -> ヘッダー
$wp_admin_bar->remove_menu( 'header' );
//カスタマイズ
$wp_admin_bar->remove_menu( 'customize' );
//コメント
$wp_admin_bar->remove_menu( 'comments' );
//新規
$wp_admin_bar->remove_menu( 'new-content' );
//新規 -> 投稿
$wp_admin_bar->remove_menu( 'new-post' );
//新規 -> メディア
$wp_admin_bar->remove_menu( 'new-media' );
//新規 -> 固定ページ
$wp_admin_bar->remove_menu( 'new-page' );
//新規 -> ユーザー
$wp_admin_bar->remove_menu( 'new-user' );
//〜の編集
$wp_admin_bar->remove_menu( 'edit' );
//こんにちは、[ユーザー名] さん
$wp_admin_bar->remove_menu( 'my-account' );
//ユーザー -> ユーザー名・アイコン
$wp_admin_bar->remove_menu( 'user-info' );
//ユーザー -> プロフィールを編集
$wp_admin_bar->remove_menu( 'edit-profile' );
//ユーザー -> ログアウト
$wp_admin_bar->remove_menu( 'logout' );
//検索
$wp_admin_bar->remove_menu( 'search' );
}
add_action( 'admin_bar_menu', 'aktk_remove_bar_menus', 99 );
管理者は管理バーメニューを削除しない場合、current_user_can( 'administrator' )
で条件判定します。
function aktk_remove_bar_menus( $wp_admin_bar ) {
if ( current_user_can( 'administrator' ) ) {
return;
}
//WordPressアイコン
$wp_admin_bar->remove_menu( 'wp-logo' );
// … 以下略
}
add_action( 'admin_bar_menu', 'aktk_remove_bar_menus', 99 );
必要に応じてメニュー項目を削除して下さい。
ちなみに、プラグインによっては様々なメニューが追加されますが、管理バーに追加されているメニューを確認する場合、引数(例では$wp_admin_bar
)の中身をvar_dump
等で表示させるとメニューIDを調べることができます。
ではまた。