今回はワードプレスの管理画面の左メニューの順位を入れ替えたり消す方法のコードをご紹介します。


ワードプレスの管理画面左メニュー順序を配列で取得、変更するmenu_orderフィルタ

ワードプレスのメニューの順序と内容は、menu_orderフィルタで取得変更することができます。下記のようなコードをテーマのFunctions.phpやプラグインに追加されることでメニュー順位を指定しなおすことができます。

// メニューの並び替え
function my_custom_menu_order($menu_order) {
    if (!$menu_order) return true;
    return array(
        'index.php', //ダッシュボード
        'separator1', //セパレータ1
        'edit.php', //投稿
        'edit.php?post_type=カスタムポストのスラグ', //カスタムポスト
        'separator2', //セパレータ2
        'edit.php?post_type=page', //固定ページ
        'edit-comments.php', //コメント
        'separator-last', //最後のセパレータ
        'themes.php', //外観
        'plugins.php', //プラグイン
        'users.php', //ユーザー
        'tools.php', //ツール
        'options-general.php', //設定
        'upload.php', //メディア (一番下に移動しました)
    );
}
add_filter('custom_menu_order', 'my_custom_menu_order'); 
add_filter('menu_order', 'my_custom_menu_order');

コードを見るとこのリストには、メニューをクリックしたときのURLのwp-admin以下のファイル名が入っていることがわかりますね。
このリストはこのURLがお分かりになれば、いくつでも追加してそのメニュー順位を好きな順に配列で指定することが可能です。

※この配列に無いメニュー項目は最下部に全部移動して、消えるわけではございません。

ワードプレスの管理画面左メニューを消す方法

ワードプレスの管理画面の左メニューを消す(隠す)には、admin_initアクションで、remove_menu_pageを呼び出して、先ほどと同じように消したいページのwp-admin以下のURLを指定します。

function my_remove_menu_pages() {

   remove_menu_page('edit.php'); // 投稿
   remove_menu_page('upload.php'); // メディア
   remove_menu_page('link-manager.php'); // リンク
   remove_menu_page('edit-comments.php'); // コメント
   remove_menu_page('edit.php?post_type=page'); // 固定ページ
   remove_menu_page('plugins.php'); // プラグイン
   remove_menu_page('themes.php'); // 外観
   remove_menu_page('users.php'); // ユーザー
   remove_menu_page('tools.php'); // ツール
   remove_menu_page('options-general.php'); // 設定

}
add_action( 'admin_init', 'my_remove_menu_pages' );

上記の例は、ワードプレスの主要な管理画面メニューをほとんど全部消してしまう例です。
IF文で条件を指定すれば、特定のユーザーや権限のユーザーだけで管理画面の左メニューを一部見えなくするということも可能です。

WordPress ワードプレスのテーマ、プラグインのカスタマイズ(改造)、作成等のご相談・ご依頼はワードプレスドクターまでお気軽にお送りください。