WordPressのカテゴリーはプラグインで設定するのはやめて「functions.php」で設定しました。
プラグインを使う場合は「Category Order and Taxonomy Terms Order」が使いやすいと思います。プラグインSimple Custom Post Orderはカテゴリが多い場合は使いにくい感じがしました。
まず、「functions.php」は空白が1つ入っただけでサイトが表示されなくなりますので、必ずバックアップを取っておきます。
カテゴリーの編集をクリック。
「説明」のところに並べたい順番に数字を入力していきます。後から簡単に順番が変更できるよう「10 20 30」など緩い数字が良いです。
こんな風にしました。
次に、子テーマの「functions.php」にコードを追記して「ファイルを更新」をクリックします。
//category defined( 'USE_CATEGORY_DESCRIPTION_ORDER' ) or define( 'USE_CATEGORY_DESCRIPTION_ORDER', true ); defined( 'CATEGORY_DESCRIPTION_ORDER_ON_ADMIN' ) or define( 'CATEGORY_DESCRIPTION_ORDER_ON_ADMIN', true ); function optimize_category_description( $description ) { if ( ! empty( $description ) && strpos( $description, ';' ) !== true ) { list( ,$_parse_description ) = explode( ';', $description, 2 ); $description = trim( $_parse_description ); } return $description; } add_filter( 'get_terms', function( $terms, $taxonomies, $args, $term_query ) { $_is_run = is_admin() ? ( CATEGORY_DESCRIPTION_ORDER_ON_ADMIN ? true : false ) : true; if ( $_is_run && in_array( 'category', $taxonomies ) ) { // Category order by prepended number in description $_tempOrder = []; foreach ( $terms as $_idx => $term_obj ) { if ( ! empty( $term_obj->description ) && strpos( $term_obj->description, ';' ) !== true ) { list( $_order_num, $_parse_description ) = explode( ';', $term_obj->description, 2 ); $_tempOrder[] = intval( trim( $_order_num ) ); if ( ! is_admin() ) { $terms[$_idx]->description = trim( $_parse_description ); } } else { $_tempOrder[] = 0; } } $_maxOrder = count( $_tempOrder ) 0 ? max( $_tempOrder ) : 1; if ( USE_CATEGORY_DESCRIPTION_ORDER && $_maxOrder 0 ) { foreach ( $_tempOrder as $_idx => $_order ) { if ( $_order == 0 ) { $_maxOrder++; $_tempOrder[$_idx] = $_maxOrder; } else { $_tempOrder[$_idx] = $_order; } } array_multisort( $_tempOrder, $terms ); // Remove categories if it has minus ordered if ( ! is_admin() ) { foreach ( $_tempOrder as $_idx => $_order ) { if ( $_order < 0 ) { unset( $terms[$_idx] ); } } } } } return $terms; }, PHP_INT_MAX, 5 );
◆プラグイン不要! 説明欄を使ってカテゴリーの並び順を変える方法 – Monaural Soundさんのコードを使わせていただきました。ありがとうございます!
無事に順番通りに並べることができました!