検索結果の表示順

WordPressでサイト内検索をすると、検索結果が「関連度順」に表示されます。
…なんだよ、関連度って。(^^;)
そのワードを含んでいる記事を単純に日付の新しい順に出してくれりゃいいのに余計なことしやがって…。

ってことでGoogle先生に相談して修正しちゃいました。

// 検索を日付(降順)にする
add_filter('posts_search_orderby', custom_posts_search_orderby);
function custom_posts_search_orderby() {
        return 'post_date desc ';
}

使用中のテーマのfunctions.phpに上記コードを追記すれば新しい順に表示されるようになります。

WordPressの仕組みはあまり良く分かっていないのですが、多分、記事検索の時の並び順決定ファンクション(posts_search_orderbyか?)が呼ばれた時に、custom_posts_search_orderbyというファンクションが呼ばれ、そのファンクションの中でSQL文のorder byにくっつける文字列を返しているのかな。
試してはいないけど、returnで返しているdescをascにすると古い順に並ぶような気がする…。

ま、とりあえず新しい順に並ぶようになってめでたしめでたし、です。

Linuxの最新記事8件