【WordPress】管理バー(admin bar)のメニュー項目を削除する方法

【WordPress】管理バー(admin bar)のメニュー項目を削除する方法

ユーザー権限によってメニューの項目を変えたいときなど、管理バー(アドミンバー)のメニューを削除する必要がある時のカスタマイズ方法です。

管理バーのメニューを削除する

管理バーのメニュー削除は下記ようなコードを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を調べることができます。

ではまた。