Admin Menu Edit でプロフィール部分の変更?

2016年12月20日Wordpress

管理画面の左メニューの編集で、Admin Menu Editを使っています。投稿者権限のプロフィール項目のタイトルを編集したかったのですが、この部分に関しては管理者権限と投稿者権限の表示のされかたが異なるため、プラグインからでは編集できないことが分かりました。そこで、$menu の配列を上書きすることで対応しました。

1
2
3
4
5
6
7
8
9
10
//管理画面項目 投稿者権限のプロフィールのタイトル変更 (Admin Menu Editでは対応できないため)
function change_menu_title() {
    global $menu;
    //global $submenu;
 
    $menu[70][0] = 'お客様情報';
    //$menu[0][0] = 'タイトル';
    //$submenu['xxxx.php'][0][0] = 'サブメニュータイトル';
}
add_action('admin_menu', 'change_menu_title');

余談ではありますが、どちらかというと、プラグインで対応するならプラグイン、そうでなければ、自分でfuncitons.php又は、カスタマイズ用プラグに書き込むというやり方をしていましたが、どうも、今回、プラグインと自分で変更するコードが混在するため、気分的に、気に入らず、どちらかに統一したいと思いました。そこで、Admin Menu Editで変更していた場所をすべて、カスタマイズ用のプラグインに書き込むことにしましたが、ただこれが不幸のはじまりで、そのせいで、順列を変える際は、下記のように menu_order、custom_menu_orderフィルターフックを使い、配列を並び替えました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function menu_order($menu_order) {
    if (!$menu_order) return true;
 
    return array(
        'index.php', // ダッシュボード
        'separator1', // 最初の区切り線
        'edit.php', // 投稿
        'upload.php', // メディア
        'edit.php?post_type=page', // 固定ページ
        'edit-comments.php', // コメント
        'edit.php?post_type=tpl', // カスタム投稿
        'wpcf7', // コンタクトフォーム
        'separator2', // 二つ目の区切り線
        'themes.php', // 外観
        'plugins.php', // プラグイン
        'ds-design-info',   // 独自プラグ
        'ds-design-create', // 〃
        'ds-design',        // 〃
        'users.php', // ユーザー
        'tools.php', // ツール
        'options-general.php', // 設定
        'separator-last', // 最後の区切り線
        'edit.php?post_type=cfs', // フィールドグループ
        'cptui_main_menu', // カスタム投稿タイプ
        'ds-variable', // 独自プラグ
        'my-test', // // 独自プラグ
 
    );
}
add_filter('custom_menu_order', 'menu_order');
add_filter('menu_order', 'menu_order');

これのせいで、今度は、global $menuと$submenuの配列の書き換えを行ったときに、配列番号がずれてしまって、すごくわかりにくくなりました。特に、独自で製作したプラグがいくつかあった為、それらの連想配列を書き換えようとすると、どうも、無理なようで、print_r($menu)で確認してみると、新たに、配列が作成されていて、上書きされていない状態でした。このためとりええず、めんどくさいので、このやり方は、やめておくことにしました。こういう複雑なことを考えると、プラグインというのは、完璧ではないですが、とても感謝すべきツールです。