WordPress プロジェクトの場合、この問題に対するより良い解決策を探しています。
クエリは、サイト訪問者の選択に基づいて、さまざまな post_types とタクソノミー (カテゴリなど) のセットを取得する必要があります。たとえば、ユーザーは通常の投稿から結果を取得したいだけでなく、製品 (WooCommerce から) や、イベントやニュースなどの他の post_types (両方とも別の post_types. like posts = 1、products = 3、news = 4 を選択すると、多数の投稿、3 倍の製品、4 倍のニュースが得られるはずです。
次のステップは、加重係数を含むカテゴリを含めることです。これにより、さらに複雑になります。投稿の場合、製品とは別の分類法を照会する必要があるためです。
これを解決するために私が見つけた唯一の方法は、post_type ごとに個別のクエリを実行することです。たとえば、投稿から 10 アイテム、製品から 30 アイテム、ニュースから 40 アイテムをフェッチして重み係数を一致させ、結果を結合します。しかし、ページネーションが必要な場合、これはあまりうまくスケーリングしません (たとえば、最初のページに 50 のエントリを表示し、次の 50 を 2 番目のページに表示したい)。
これらの単一のクエリを一時テーブルにまとめることを考えましたが、そのようなテーブルは現在のセッションでのみ使用できるため、ページネーションには役立ちません (2 ページ目が表示されたときに一時テーブルが存在しなくなるため) )。
このタスクにどのように取り組むことができるか、誰にも考えがありますか? WordPress のコーディング標準に従って欲しいので、WP_Query と提供されたフィルターを使用したいと思います。サイトは翻訳に地理位置情報と WPML も使用しているためです。これらすべてを手動で含める必要があります。
私は最終的な解決策を探しているのではなく、アイデアを集めたいだけです。