对于WordPress项目,我正在寻找更好的解决方案来解决这个问题:
查询应根据网站访问者的选择获得一组不同的post_types和分类(如类别)。例如,用户希望从普通帖子中获得结果,还有产品(来自WooCommerce)和其他post_types,例如事件和新闻(两者都是单独的post_types。棘手的部分是,用户想要为每个人分配权重因子。所以如果他们选择的帖子= 1,产品= 3,新闻= 4,他们应该获得一些帖子,三倍以上的产品和4倍的新闻。
下一步将包括类别,也包括权重因子,这将使其更加复杂,因为对于帖子,我需要查询另一个分类而不是产品。
我找到解决此问题的唯一方法是为每个post_type运行单独的查询,例如从帖子中获取10个项目,从产品中获取30个项目,从新闻中获取40个项目,以匹配权重因子,然后合并结果。但是当我需要分页时,这不会很好地扩展(例如,我想在第一页上显示50个条目,在第二页上显示50个条目)。
我考虑过将这些单个查询收集到一个临时表中,但是这样的表只能用于当前会话,所以它不会帮助分页(因为临时表将不再存在,显示第二页。
有人有想法,我该如何处理这项任务?我想根据WordPress编码标准,所以我想使用WP_Query和提供的过滤器,因为该网站也使用地理定位和WPML进行翻译,所以我真的想避免写一个低级查询我在哪里必须手动包括所有这些。
我不是在寻找最终的解决方案,只是想收集一些想法。