【WordPress】管理画面でカテゴリーの並び順を自由に変更する方法

【WordPress】管理画面でカテゴリーの並び順を自由に変更する方法 WordPress

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を指定し、orderbyinclude にすることで、指定した順序通りに表示されます。

注意点と補足

この方法は「投稿編集画面」のカテゴリー表示順にのみ影響します。管理画面のカテゴリー一覧(edit-tags.php)の並び順は対象外です。

また、カテゴリーの親子構造がある場合は、その構造を維持したい場合に追加の工夫が必要になります。その場合は、get_terms をカスタマイズする方法も検討しましょう。

まとめ

管理画面でのカテゴリーの並び順を変更することで、頻繁に使うカテゴリーを上部に表示したり、投稿者にわかりやすく整理したりすることが可能になります。
カスタマイズ性の高いWordPressの機能を活用して、投稿作業の効率化を目指しましょう。