MENU

Intuitive Custom Post Orderという、カテゴリや記事を好きな順番に並び替えることができる便利なプラグインがありまして、よくお世話になっているのですが、先日、カスタムタクソノミーの並び替えが反映されない事象が発生しましたので、その時の対処法をメモ。

目次

WP_Term_Queryでは並び替えが効かない?

この事象が発生したとき、とあるカスタムタクソノミーを一覧表示させるというコードを記述していたのですが、この時、タクソノミーの一覧表示にはWP_Term_Queryを使用していました。

が、どうやらこれがダメみたい。

orderbyを指定してみる

調べてみると、

get_posts()を使用する場合はデフォルトの並び順(orderby=date)に上書きするため、独自のパラメーター default_date をorderby に指定する必要がある

ということが判明。

このプラグインでは'default_date'というものに順番が記憶されてるみたいですね。

ということで、WP_Term_Queryに渡す引数も同じようにorderbyが指定できるので、これで解決!

と思ったのですが、なぜか無理でした。

get_posts()のように何か解決策はあるはずですが、数分調べてもWP_Term_Queryでの解決策は見つからず…

諦めてget_terms()を使う!

はい、諦めました。

get_terms()だと、orderbyを指定せずともしっかりと順番の並び替えが反映されます。

おそらくアクションフックの箇所が違うのでしょうね…

 

ちなみに、カテゴリ一覧を表示する方法などを以前にまとめていますので、「ん、2種類も方法があるの?WP_Term_Query?get_terms?」と思った方はぜひこちらもご覧ください。

 

- Thank you for reading this to the end. -
TOPへ Top