質問: 検索結果を複数のチャンネルに並べ替える 検索結果に結合する2つのチャンネル、画像と動画があります。キーワードで検索すると効果的です。 entry_dateとtitleでソートします。しかし、私たちはまた、他の分野で並べ替えることを望みます。 単純化するために、各チャンネルのカスタムフィールドvideo_score、image_scoreを想像してください。これは、他の場所から受け取った整数を保持しています。ですから、どのようにorderbyのためにこれら2つを組み合わせることが可能でしょうか? 簡単な場合は、一意の注文番号を持つフィールドvideo_orderとimage_orderを作成できますが、カスタムフィールドが2つのチャンネルにあるため、同じカスタムフィールド名を使用する方法がわかりません。これはorderbyに必要なものです。 コアフィールドをハイジャックする必要がありますか? ありがとう、 ポール
回答: これを行うための1つの方法は、 low_search_post_searchフックを使用するカスタムエクステンションを作成することです。 a>。これにより、結果を解析するためのネイティブのchannel:entriesタグに渡されるすべてのパラメータを含む配列が得られます。これには、検索結果のエントリIDを含むentry_idまたはfixed_orderパラメータが含まれます( a LSフィルターがトリガーされました)。 そのIDのリストを使用して、並べ替えたい値をDBに照会し、それらの値に基づいてエントリーIDを再ソートすることができます。新しくソートされたリストでfixed_orderパラメータを設定すると、検索結果が必要な順序で表示されます。 別の方法は、コアフィールドをハイジャックするフィールドタイプを作成することです(あなたの提案通り)のようにview_count_oneを4回します。