WordPressを長く使っているとダッシュボードのサイドバーメニューがごちゃごちゃしてきますよね?
昔のプラグインやテーマは大抵「設定」や「ツール」メニューの中にメニューが入っていたのに、最近ではどんどんサイドバーメニューに追加されていく感じになりました。
更にカスタム投稿タイプなどを追加した場合には標準の「コメント」下に表示されるものの、複数の投稿タイプを追加すると順番が思い通りにいかないなんてこともありますね。
このサイト内を見ていただくと私がプラグインフリークなのがよくわかってしまいますが、今回はプラグインを使わずにサイドバーメニュー(トップメニュー)の順番を簡単に変更してみようと思います。
順番だけでなく、メニューの中に入っているサブメニューを別の場所に表示させたり、一部を非表示にしたり、名前を変更したり、新しくメニューを追加したり・・といろいろやりたい方で特にトラブル対処ができない方は素直にプラグインを使った方が無難だと思いますよ。
ダッシュボードのサイドバーメニューを並び替える方法
コード自体は「https://wald-grun.biz/blog/wp/4564/」というページに掲載されていたものなのですが、残念ながらこの記事は削除されたようです。
一応コードを保存しておりましたので、初心者でも失敗しない方法を追記しておこうと思います。
//ダッシュボードメニューの順番
function custom_menu_order($menu_ord) {
if (!$menu_ord) return true;
return array(
'index.php', // ダッシュボード
'separator1', // 最初の区切り線
'edit.php', // 投稿
'upload.php', // メディア
'link-manager.php', // リンク
'edit.php?post_type=page', // 固定ページ
'edit-comments.php', // コメント
'separator2', // 二つ目の区切り線
'themes.php', // 外観
'plugins.php', // プラグイン
'users.php', // ユーザー
'tools.php', // ツール
'options-general.php', // 設定
'separator-last', // 最後の区切り線
);
}
add_filter('custom_menu_order', 'custom_menu_order'); // Activate custom_menu_order
add_filter('menu_order', 'custom_menu_order');
これをテーマのfunctions.phpへ追記するだけで並び替えの準備は完了です。
ちょっと脱線しますけど、テーマファイルそのもの(親テーマ)に追記するとトラブルの元になりますから、子テーマを作って、子テーマのfunctions.phpへ追記するようにしましょう。
子テーマは
を使えば簡単に作成できます。作ったらこのプラグインは不要ですから停止するなり削除するなりしましょう。
・・・話を元に戻します。上のコードがWordPressのインストール時に表示されるメニューすべてです。行を並び替えればここに表示されているものは簡単に順番が変更できます。
区切り線についてはコピーしていくらでも使うことができます
上の中にないメニューについては実際にメニューをクリックして表示されたURLの一部をコピーして作ります
例えば「test」というカスタム投稿タイプがあるとしたら、「test」というメニューをクリックします
URLは「サイトのドメイン/edit.php?post_type=test」となっていますよね?
赤字の部分をまずコピーします
edit.php?post_type=test
そして、前後に半角の「’」を入れ、最後に半角の「,」を入れます。
最終形は
‘edit.php?post_type=test‘,
となります
ン?どっかで見たような・・・そうです。上のコード内で固定ページと書かれているところをちょこっと変更するだけなんですね。
じゃあなんでわざわざ一度表示させてコピーするの?手入力すればいいじゃん?と思われるかもしれませんね。人間の手で文字を入力するのって結構間違いがあるんです。こうして文章を書いていてもそうですよね?文章なら読んだ人が「ここ誤字・脱字だな」と判断すれば済む話ですが、プログラムの場合はそうはいきません。当然ながら文字の順番が違ったり、1文字足りなかっただけでプログラムは正常に動作してくれませんから、コピー&ペーストでできるものはした方が残念なトラブルやエラーは避けられると思います。
最後の「// メニューの名前」はプログラムとしては動作しないコード上のコメントになりますからつけてもつけなくても大丈夫です(後から見やすくするようにつけておいた方が無難です)。
※コードに慣れていない方はここで失敗して画面が真っ白になったり、4.9以降のバージョンではエラーが表示されて先に進めないという事態になります。
ダッシュボードメニューの並び替えは以上となります。これだけだったら特にプラグインに頼る必要もないですね。
最後になりましたが、ほかの人が誤ってメニューをクリックしないようにするために特定のメニューを非表示にするというケース以外では、メニューは非表示にするよりも下の方へ追いやっておいた方が「あれ?あの設定メニューどこだっけ?」みたいなことになりませんからいいと思います。