WordPressの投稿編集画面で表示されるカテゴリー一覧は、初期状態ではID順や名前順で並んでいます。しかし、用途によっては任意の順序に並び替えたい場合もあるでしょう。この記事では、管理画面(投稿画面)でカテゴリーのチェックリストの表示順を自由に変更する方法を紹介します。
wp_terms_checklist_args フィルターを使用する
WordPressでは、投稿画面のカテゴリー一覧は wp_terms_checklist()
関数によって出力されています。この出力をカスタマイズするには、wp_terms_checklist_args
フィルターフックを使うのが最も効果的です。
任意の順番で表示するカスタマイズ例
以下のコードを functions.php
に追加することで、特定のカテゴリーIDの順序でチェックリストが並ぶようになります。
function custom_category_order_in_admin($args, $post_id) {
// カスタム順序にしたいカテゴリーIDの配列(任意の順番で指定)
$custom_order = array(5, 12, 8, 3, 1);
// タクソノミーがカテゴリーであることを確認
if ($args['taxonomy'] === 'category') {
$args['include'] = implode(',', $custom_order);
$args['orderby'] = 'include';
}
return $args;
}
add_filter('wp_terms_checklist_args', 'custom_category_order_in_admin', 10, 2);
ポイント:
include
に並べたいIDを指定し、orderby
を include
にすることで、指定した順序通りに表示されます。
注意点と補足
この方法は「投稿編集画面」のカテゴリー表示順にのみ影響します。管理画面のカテゴリー一覧(edit-tags.php
)の並び順は対象外です。
また、カテゴリーの親子構造がある場合は、その構造を維持したい場合に追加の工夫が必要になります。その場合は、get_terms
をカスタマイズする方法も検討しましょう。
まとめ
管理画面でのカテゴリーの並び順を変更することで、頻繁に使うカテゴリーを上部に表示したり、投稿者にわかりやすく整理したりすることが可能になります。
カスタマイズ性の高いWordPressの機能を活用して、投稿作業の効率化を目指しましょう。