
トップページの一覧表示はデフォルトじゃなくて特定のカテゴリーのみをループさせたい!
そんなときはget_postsかquery_postsを使うケースも多かったと思う。
これからはpre_get_postsをフックしてあげようと思う。
その方が効率がいいっぽいので。
というのも、query_postsで新しくクエリを発行するという事は、既に1回発行してあって、2回目の発行を行うということになるっぽいので。
それだったら最初からこちらの意図したクエリでDBアクセスしてよ、というのが
パフォーマンス至上主義者のみなさんの本音でしょう。
ということでそのためのフックが、pre_get_postsというわけです。
実装方法
https://gist.github.com/soylatte/4983354.js
これで効率よく初期表示を変更できる。
is_main_query()を組み合わせることで、同一ページに別のループがあっても予期せぬ影響を与えずに済む。
これはver3.3から導入されたらしい。