WordPressの管理画面におけるメニューの順番を制御するには、プラグインを使う方法と、function.phpにコードを書き込む方法の2つがある。
これまでプラグインのadmin menu editorを使用していたが、プラグインの総数を減らすため、プラグインの代わりにfunction.phpにコードを書き込む方法に変えることにする。
以下のようなコードをfunction.phpに書き込む。
/**
* 特定のコンテンツメニューだけを上部に並び替え、残りはデフォルトに任せる
*/
function my_custom_menu_order( $menu_ord ) {
if ( ! $menu_ord ) return true;
return array(
'index.php', // ダッシュボード
// --- 記事・コンテンツ系(ここだけ順番を固定) ---
'edit.php', // 通常の「投稿」
'edit.php?post_type=page', // 固定ページ
'upload.php', // メディア
'edit-comments.php', // コメント
'separator1', // 区切り線1
'edit.php?post_type=custom-post1', // 【カスタム投稿】
'edit.php?post_type=custom-post2', // 【カスタム投稿】
'edit.php?post_type=custom-post3', // 【カスタム投稿】
'separator2', // 区切り線2
// --- 管理・設定系 ---
'themes.php', // 外観
'plugins.php', // プラグイン
'users.php', // ユーザー
'tools.php', // ツール
'options-general.php', // 設定
'separator-last', // 最後の区切り線
);
}
add_filter( 'custom_menu_order', '__return_true' );
add_filter( 'menu_order', 'my_custom_menu_order' );
Contact Form7が、「問い合わせ」のメニューを追加させるが、このメニューを制御したければ、以下のコードを人の場所に追加する。
'wpcf7-dashboard', // お問い合わせ (Contact Form 7の場合)
区切り線は、separator1、separator2、separator-lastの3本までしか定義されていないので、separator3を記述しても機能しない。
コメントは承認制となっております。表示されるまで数日かかる場合がありますのでご了承ください。