ブログのカテゴリーの一覧を出力する場合、ちょっとしたことですが並び順が自由にならなくて困る事があります。そんなカテゴリー一覧を自由に並びで出力するやり方です。
この方法は、wp_list_categories関数とプラグインを組み合わせておこないます。
wp_list_categories関数の使い方
wp_list_categories関数は、リンク付きのカテゴリー一覧を出力する場合に使います。wordpressのカテゴリーは階層構造にすることができますので、最上位階層のみ一覧にする場合やあるカテゴリー以下の子カテゴリーのみ出力するような場合にも使うことができます。
パラメータを指定しないと全カテゴリーを名前順(昇順)で表示されます。
wp_list_categories();
投稿の多い順に表示する場合は、以下のようにパラメータを指定します。
wp_list_categories("orderby=count&order=DESC");
カテゴリーID:17の配下のみ表示する場合
wp_list_categories("child_of=17");
問題はカテゴリーの並び順が固定的だ
wp_list_categoriesは、orderbyパラメータで並び順を指定できますが、以下の順でしか指定することが出来ません。
パラメータ値 | 内容 |
count | カテゴリーの投稿数 |
name | カテゴリー名のアルファベット順(初期値) |
slug | カテゴリーのスラグ名順 |
term_group | グループID順 |
id | ID順 |
none | ソートなし |
それぞれ、昇順か降順の指定はできますが、これでは自由に並び替えを指定することは出来ません。
カテゴリーの順番の並びかえるCategory Orderプラグイン
wordpressのプラグインにCategory Orderというプラグインがあります。これはマウスのドラッグ&ドロップでビジュアルにカテゴリーを並び替える事が出来ます。
![]() |
このCategory Orderプラグインを使って並び替えた順番は、wp_list_categories関数や標準のウィジットの出力に対応してますので、このCategory Orderプラグインとwp_list_categoriesを組み合わせて使うと、自由に並び替えたカテゴリーリストを作ることが出来ます。
※My Category Orderプラグインも有名ですが、こちらは対応していないようです。
wp_list_categoriesのパラメーターorderbyはパラメータなしか、またはnameを指定します。
wp_list_category('orderby=name');