Warning: Cannot modify header information - headers already sent by (output started at /home/users/0/digivalley/web/studio-happyvalley/wp/wp-content/themes/shv/single.php:1) in /home/users/0/digivalley/web/studio-happyvalley/wp/wp-content/themes/shv/header.php on line 13
ANDもORも混ぜこぜ検索 – WEB制作事業所 スタジオ・ハッピィバリー

Studio
Happyvalley

Search

ANDとORを混在できるWordpress用絞り込み検索を実装。

フィールド値を使った
絞り込み検索フォーム

Wordpressは検索機が充実しているので検索機能をマスターしようと絞り込み検索を作ってみました。
全文検索は今回の目的ではなく、欲しい商品を絞り込むときの検索のように、あらかじめキーなり、タグなりを設定するイメージです。
この方法、Wordpressには大きく分けて二つあるみたいで
1. カテゴリー、タグを利用。
2.投稿フォームのフィールドを利用。
です。
カテゴリーやタグを使った検索はこれまでいくつか経験あるので、難易度が高そうなフィールドを使う方法で試してみました。
wordpressはフィールドを追加するにはプラグインが必要なのでAdvanced Custom Fieldを利用。
検索のテンプレートは、デフォルトのテーマを利用。
検索フォーム部分はsearchform.php、検索結果部分がsearch.phpになります。

https://studio-happyvalley.com/wp/wp-content/uploads/2021/02/search_fig_1.png

テーマは不動産で
物件を絞り込み

テーマは利用頻度の高そうな不動産に、絞り込む項目は所在地エリアと分譲タイプ、価格帯の3つで決定。

https://studio-happyvalley.com/wp/wp-content/uploads/2021/02/search_fig_2.png

ただやっていくうち、さすがに3個では項目が足りなくて実用性がないなと。
それでオプションを追加してチェックボックス式で選べるように。
またチェックした項目もすべてそろっているか(AND)、どれかひとつ含まれていればいいか(OR)も絞り込めるように実装。

https://studio-happyvalley.com/wp/wp-content/uploads/2021/02/search_fig_3-1.png

AND検索は複雑で
難易度高し!

AND検索の方法も正規表現を使う方法などいろいろあったのですが、長くなるので詳しく知りたい方は「PHP、正規表現、AND検索」などで調べてみてください。
ただ、正規表現を使う方法はかなり重くなったのでwordpressデフォルトの$wp_queryを使いました。これよくできていて検索条件を高次元配列のようにどんどん追加できてAND、ORも個別に設定できるのでプラグインとか他のもの何も使う必要ないなというのが感想です。
次はチェックしたものが含まれない検索を追加してみようか・・(NOTというらしい)。
でも考えたのですが、例えば、墓地の近く、国道のそば・・など敢えてマイナス点を物件に記載するのかなと、いや、記載すればすごく正直な不動産屋さんって評価を受けるかもしれないけどどうなんでしょうね。
実用性はなくても作る意味はありますが。

https://studio-happyvalley.com/wp/wp-content/uploads/2021/02/search_fig_4.png

『妃魔人のワークショップ』のお薦め