【发布时间】:2018-05-18 09:15:46
【问题描述】:
我正在尝试创建一个自定义搜索结果页面,其中 Woocommerce 产品结果与博客/一般帖子分开显示。
我的目标是将它们显示为具有不同样式的单独块。
[Block 1] - Woocommerce results
[Block 2] - Blog / Post results
我已经设法在一个循环中显示产品,但我正在努力从 post 循环中排除产品。
我尝试创建一个自定义循环,但这只会显示这些术语中的所有帖子,而不是搜索中返回的帖子。
我常用的循环是:
<?php $loop = new WP_Query( array( 'post_type' => 'post' ?>
<p>Something here</p>
<?php endwhile; wp_reset_query(); ?>
但是我认为这不兼容并且不适合我的需求。
如果有更好的解决方案来区分这些,我绝对希望听到更多。
【问题讨论】:
-
显然有一种解决方案,即在一个查询中同时获取 blog/post/woocommerce,然后将它们拆分到各自的列中,但问题是您很可能最终得到不均匀的列,或者甚至是一页的空列。如果您打算为每列单独分页,您可以考虑使用 ajax,并在该 ajax 调用中过滤帖子类型。您将执行两次初始 ajax 调用来填充每一列。
-
不,我不打算单独分页。我计划在一页中返回所有结果,但只是分别设置样式
-
您是否使用任何挂钩来修改搜索的主查询(例如
posts_search或posts_join或posts_where等)。这可能包括以任何方式修改搜索的插件。 -
嗨查理。 Sumurai8 的以下答案看起来很有帮助且内容丰富 - 这对您的问题有帮助吗?
标签: php wordpress woocommerce