目次
はじめに
以下を実現します。
完成イメージ

実装手順
以下のコードをfunctions.phpに追加します。
/**
* カテゴリーウィジェットに特定のカテゴリーを表示設定
*
* @param array $args カテゴリーウィジェットに渡される引数の配列
* @return array 指定カテゴリーの表示設定を追加した引数の配列
*/
if (!function_exists('custom_category_args')):
function custom_category_args($args) {
$args['include'] = [
169, // (親)コーヒー
16, // (親)アメブロ
5, // (子)ジム
3, // (子)イベント
4, // (親)カメラ
];
$args['orderby'] = 'include';
return $args;
}
endif;
// カテゴリーのクエリを変更
add_filter('widget_categories_args', 'custom_category_args');
add_filter('widget_categories_dropdown_args', 'custom_category_args');
解説

図1に示す投稿→カテゴリーから、希望の順序でカテゴリーのIDをカンマ区切りで指定し、並べ替えます。
具体的には、図2に示す順序に変更します。
【変更前】
- (親)アメブロ:16
- (子)イベント:3
- (子)ジム:5
- (親)カメラ:4
- (親)コーヒー:169
【変更後】
- (親)コーヒー:169
- (親)アメブロ:16
- (子)ジム:5
- (子)イベント:3
- (子)カメラ:4
表示イメージ
参考:「ナビゲーション」ウィジェットを代用する方法

「ナビゲーションメニュー」ウィジェットを使用することで、ノーコードでカテゴリーの順序を自由に並び替え、メニューを作成することができます。
参考:カテゴリーを投稿数順で表示する方法
以下のコードをfunctions.phpに追加します。
/**
* カテゴリーウィジェットに特定のカテゴリーを表示設定
*
* @param array $args カテゴリーウィジェットに渡される引数の配列
* @return array 指定カテゴリーの表示設定を追加した引数の配列
*/
if (!function_exists('custom_category_args')):
function custom_category_args($args) {
$args['orderby'] = 'count'; // 投稿数で並び替え
$args['order'] = 'DESC'; // 降順(多い順)
return $args;
}
endif;
// カテゴリーのクエリを変更
add_filter('widget_categories_args', 'custom_category_args');
add_filter('widget_categories_dropdown_args', 'custom_category_args');



