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