2017-12-15 6 views
0

私はワードプレスのウェブサイトでAlgoliaを使用しています。私は標準の組み込みのアロリア機能のほとんどを使用する検索結果ページを作った。私がしようとしているのは、誰かがキーワードを入力し、それがタグ、カテゴリ、関連するトピックタイプのいずれかと一致する場合、そのトピックタイプを選択したかったということです。私はプログラムでこれを行う必要があります。私はjavascriptでこれを行うことができると思うだろうが、私はこれを試してみると効果がない。プログラムでフィルタのチェックボックスを選択する

jQuery('#qry-<?php // echo $active_query_term_slug; ?>').attr('checked', true); 

私も試してみました:

helper.on('result', function(result) { 
    result.hits.forEach((hit) => 
     jQuery('#qry-<?php // echo $active_query_term_slug; ?>').attr('checked', true); 
    ) 
}); 

私は私が(「確認」私は.ATTRで選択しようとしているIDと一致しますトピック型にIDを追加したことを追加する必要があり、真)ライン。

用語の完全一致が検索されたときにプログラムでチェックボックスを選択する方法はありますか?

+0

注:私の答えは、クエリ内のタグ/カテゴリを認識して使用して結果を自動的にフィルタする方法です。 適切なチェックボックスを選択するUIの問題に対処できるように、実装の詳細を説明する必要があります。しかし、基本的には、PHPなしでJavaScriptを使用しています:Algoliaから応答が返ってきたら、どのフィルタが選択されているか調べて適切なチェックボックスを更新します。PHPコードはレンダリング時にこのことを知らないでしょう。 –

+0

私はクエリルールを追加しました。それはうまくいくようですが、サイドバーのフィルタリングでタグが表示されています。まだ一致する単語を選択することができません。私がしようとしたのは、トピックにIDを追加してから、helper.on()関数とトリガー( "click")イベントでjqueryコードを使用して、一致する用語チェックボックスを選択します。これは時々動作しますが、確実に動作させることはできません。 – Robbiegod

+0

あなたはあなたのページのその部分を示す簡単なjsfiddleを提供できると思いますか? –

答えて

0

(免責事項:私はAlgoliaで働いている)

Algoliaが実際に正確にあなたがやりたいことのために設計された最近の機能をリリースしました:あなたのタグでQuery Rules

として設定カテゴリと話題ファセットの属性、あなたは自動的にクエリでそれらのいずれかを検出し、その結果として、それに対する適切なフィルタリングを有効にするにはエンジンを依頼することができます。

adding a rule

のTh条件は、「ファセットプレースホルダー」のみで構成され、categoriesファセットからの任意の値と正確に一致するように試みます。私は私のルールに、2つの結果を追加している

注:特定しcategoriesファセット値の

  1. フィルター
  2. は、クエリから単語を削除する

秒1を確認しますあなたのクエリはまだそれからファセット値を削除することによって結果を引き上げます。実際には、カテゴリ固有のレコードでフィルタリングされた単語は、それ以上何も一致しないか、または「ノイズ」を生成する可能性があります。
これはオプションですが、強くお勧めします。

これはではありません。あなたのユーザーの検索ボックスからその言葉を削除すると、その人はトランスペアレントになります。

関連する問題