WordPressの検索結果の表示順を日付順(降順)に変更したい!

WordPressの検索結果の表示順は、WordPressバージョン3.7から関連度順に表示されるように変更されており、日付順で検索結果を出力させたい場合はこれを変更するコードを追加する必要があります。
この並び順に関して、ブログなどで「関連度順に並んでくれるなら問題ない!」といった場合は問題ありませんが、ニュースサイトなどで新しい情報を上に表示させたい場合には問題になってきます。

 

コード実装

フィルターイベント“posts_search_orderby”をフックし、検索結果時の記事一覧の並び順を日付(降順)に変更する。
コードは下記を functions.php に追加。

 

functions.php

 

フィルター“posts_search_orderby”とは

WordPress 3.7から追加されたフィルターで、検索結果を並べ替えるときに使用されるORDER BYをフィルタリングすることができます。

 

最後に

アクションイベント“pre_get_posts”をフックしてorderby及びorderクエリーをセットする方法もありますが、今回はシンプルに、影響範囲も狭いフィルターフックで変更する手法で実装しました。
殆どの場合はこの手法で問題ないかと思います。