質問: ### 前提・実現したいこと 下記のページを参考にWordpressで絞込検索しているのですが、路線検索で××駅から徒歩何分かを絞り込む方法が分かりませんでしたのでご教示頂ければ幸いです。 地域での検索は、一番近い駅までの徒歩時間をカスタムフィールドに入れて絞込できるようにしています。 しかし、路線から検索の場合、先に駅名を指定されているので、駅名を紐付ける必要があると思います。 そこで下記のようにタクソノミーを使用して駅名の小タームとして徒歩時間を登録していこうと思ったのですが、tax_queryにすると◯分以内という絞り込みができなさそうなのと、「この親を持つ小ターム」という絞込がなさそうに思います。 ![イメージ](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/b85cda7401b649b973b43f9d9734dad4.png) ここで行き詰まってしまい、どうすればいいかわからなくなってしまいました。 アイデアやヒントを頂ければと思うのですが、そもそもquery_postsでそこまで高度な絞込検索はできないのでしょうか。。。 ご教示頂ければ幸いです。 よろしくお願いいたします。
回答: > > アイデアやヒントを頂ければ > > > プラグインなどの事情を無視して、アイディアだけ言いますね。 固定観念を捨てた一番シンプルなアルゴリズムでは、 「JR>東海道本線>大船」ができる前提なら、 「20分>15分>10分」も原理的にできるはずです。 すなわち、「駅から徒歩X分以内」というデータ構造を、 整数での比較ではなく、**集合の包含関係**で捉えます。 つまり、「JR>東海道本線>大船>20分>15分>10分」と、 一気通貫の構造にします。**分数も一種の地名**扱いで統合します。 さらにこれを、「JR、東海道本線、大船、20分、15分、10分」と 並列構造でも持っておけば、「東海道本線、20分以内」とANDで検索できます。 ただしさすがに、大手不動産サイトは上記のような表記になってません。 汎用性の低いその場しのぎの設計ですが、最低限の目的は果たせます。 (たま~に小規模サイトで、上記みたいな表記を見た記憶ありませんか?) もちろん、UIでの検索の絞り込み方との衝突や、 個別のプラグインごとの制約もあるでしょうが、 * ひとつの項目が「20分以内」「15分以内」など複数のタグを持つ * 「20分以内」などの属性は、検索に応じて重複を嫌わず複数持つ (たとえば「大船>20分以内」と「駅から20分以内」を別にする) で何とかなるケースがあると思います。試行錯誤してみてください。 もしダメでも、最終的には、素のPHP(とDB)で実装できるはずです。