サポート » 使い方全般 » 検索結果にオリジナルのソートを追加したい

  • 解決済 imo

    (@imo)


    検索結果のカスタマイズ方法がわからなかったので投稿させて頂きました。

    検索結果に記事の閲覧回数順にソートしてくれるURLのパラメータを追加したいのですが
    どうすれば実現できるのでしょうか。
    wordpressのデフォルトの設定ではpost_date,commentcount,metaしかないため
    また、閲覧回数はwp_popularpostsdataのpageviewsカラムに入っています。

    検索時に(is_search)実行時だけwp_popularpostsdataというテーブルをjoinするには
    どこに記述すればいいのかわかりません。

    下記の方法でクエリを発行すればできるのですが…
    $results = $wpdb->get_results(“SELECT SQL_CALC_FOUND_ROWS $wpdb->posts.ID,$wpdb->posts.post_date,$wpdb->posts.post_title,$wpdb->posts.post_status,$wpdb->posts.comment_count,wp_popularpostsdata.postid FROM $wpdb->posts JOIN wp_popularpostsdata ON $wpdb->posts.ID = postid WHERE $wpdb->posts.post_title LIKE ‘%$searchword%’ OR $wpdb->posts.post_content LIKE ‘%$searchword%’ GROUP BY $wpdb->posts.ID ORDER BY pageviews DESC LIMIT 0,10”);

    このような形でパラメータにしたいです。
    http://vocaloid-ranking.com/?s=test&orderby=pageviews&order=DESC

    大変申し訳ございませんが、どなたかご教授お願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 imo

    (@imo)

    自己解決しました。

    モデレーター jim912

    (@jim912)

    補足しておくと

    このような場合は、posts_join_requestとposts_orderby_requestにフックして、sql文を上記のように書き換えることで解決しますね。
    is_main_queryを使って条件分岐をしておくと変なところでハマることもなくなります。

    こんにちは。

    私も全く同じ問題で躓いているのですが、
    どのように解決できたのか教えていただけないでしょうか。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「検索結果にオリジナルのソートを追加したい」には新たに返信することはできません。