カテゴリや記事を好きな順番に並び替えることができる便利なプラグイン、「Intuitive Custom Post Order」。
よくお世話になっているのですが、先日カスタムタクソノミーの並び替えが反映されない現象に遭遇しましたので、その時のメモ。
目次
WP_Term_Queryでは並び替えが効かない?
この事象が発生したとき、とあるカスタムタクソノミーを一覧表示させるというコードを記述していたのですが、この時、タクソノミーの一覧表示にはWP_Term_Queryを使用していました。
が、どうやらこれがダメみたい。
orderbyを指定してみても...
調べていると、以下のような説明を発見。
get_posts()を使用する場合はデフォルトの並び順(orderby=date)に上書きするため、独自のパラメーター default_date をorderby に指定する必要がある
どうやらこのプラグインでは'default_date'
というパラメータに並び替えた時の順番が記憶されてるみたいですね。
ということで、さっそくWP_Term_Querでも'orderby'
を'default_date'
に指定!
これで解決!
...と思ったのですが、なぜか無理でした。
上記のget_posts()
のように何か解決策はあるはずだとは思いますが、その後しばらく調べても解決策は見つかりませんでした。
諦めてget_terms()を使う!
ということで、WP_Term_Querの使用を諦めました。
get_terms()
だと、'orderby'
を指定せずともしっかりと順番の並び替えが反映されます。
アクションフックの違いでもあるのでしょうか...。
ちなみに、カテゴリ一覧を表示する方法については、以下の記事を参考にしてみてください。
WordPressでカテゴリー・タグ・タクソノミーのタームを全取得して一覧表示する方法【WP_Term_Query / ge...
今回は、カテゴリー・タグ・カスタムタクソノミーのターム情報を全て取得する方法をまとめていこうと思います。 サイドバーやフッターに、「カテゴリー一覧」や「タグ一...