web-dev-qa-db-ja.com

ユーザーが複数のタグで検索を実行できるようにする方法

私のwordpressサイドバーにはいくつかのドロップダウン選択オプションがあります。

enter image description here

ユーザーがいずれかのドロップダウンからオプションを選択すると、検索結果ページに移動します。

http://mywebsite/wp/?post_type=post&taxonomy=category&terms=29&search_type=or&order=title

29は検索対象のタグで、ユーザーが選択したものです。

私はその機能をJQueryでやっています:

$('select').on('change', function () {
    var url = $(this).val(); // get selected value
    if (url) { // require a URL
        window.location = "http://mywebsite/wp/?post_type=post&taxonomy=category&terms=" + url + "&search_type=or&order=title"; // redirect
    }
    return false;
});

上記のJQueryではなく、これを実現しようとしていました。

$("#search").click(function(){
    var k = $("#mtsw-form-children-term-ids-10 option:selected").val();
    var m = $("#mtsw-form-children-term-ids-13 option:selected").val();
    var o = $("#mtsw-form-children-term-ids-11 option:selected").val();
    alert("Location: " + k + "\nSpecialty: " + m + "\nPhysician: " + o);
            //window.location = ; //SEARCH BASED ON LOCATION, and/or SPECIALTY, and/or PHYSICIAN tags
});

ドロップダウンにMulti-Term-Selectionウィジェットを使用しています。

その検索を実行できたらどうすればわかりますか。私はWordpressが初めてなので、出発点を理解しようとしています。

3
Si8

まず、カテゴリとタグの再利用をやめ、代わりにカスタム分類法を使用します。これはあなたを与えるでしょう:

  • アーカイブとリスト
  • 各分類を表示するためのURL
  • 名前と一致するユーザーインターフェース

私は個人的に専門と分類の分類法を持つ医師のカスタム投稿タイプを選択したでしょう。ただし、これは投稿を絞り込むための方法であると想定しているため、この仮定に基づいてこれらの分類法を登録します。

  • ロケーション
  • 専門
  • 医師

次に、JavaScriptを捨てて、インターフェースをフォームとして実装します。

<form action="" method="GET">

これらの名前を持つ3つの入力を選択します。

  • ロケーション
  • 専門
  • 医師

これらの選択入力のオプションは、各項のナメクジに一致する値を持ちます。

Orderなどの追加パラメータについては、それらをhidden型の入力に入れてください。

最後に送信ボタンを追加して、「検索」というラベルを付けます。あなたは今あなたが望んでいたもののnon-jsバージョンを持つべきです。

これらのアーカイブもあります。

  • example.com/location/example
  • example.com/specialty/example
  • example.com/physician/example

そしてあなたが利用できるこれらのテンプレート:

  • taxonomy-location.php
  • taxonomy.php
  • archive.php

各分類法などについては、どの階層を実装するかを決定するときにテンプレート階層図を参照してください。

3
Tom J Nowell