我正试图找出解决这个问题的最佳方法。我有几个归档类型的页面,可以一次显示多个帖子类型的内容。例如,我用自己的搜索功能覆盖了WordPress的默认搜索行为。由于没有使用核心WordPress搜索,全局$wp_query
变量为空,标准循环函数(have_posts()
, the_post()
, 等)不会起作用。
我的搜索类生成按相关性排序并按帖子类型分组的结果。结果如下所示:
$results = array(
\'page\' => array(
\'post_id\' => {WP_Post object},
\'post_id\' => {WP_Post object},
\'post_id\' => {WP_Post object}
),
\'post\' => array(
\'post_id\' => {WP_Post object},
\'post_id\' => {WP_Post object}
),
\'custom_post_type\' => array(
\'post_id\' => {WP_Post object},
\'post_id\' => {WP_Post object}
)
);
我现在所做的输出这些是非常可怕的。我循环浏览每个帖子类型并输出
<section>
为了它。然后,在帖子类型部分的模板中,我运行以下循环来输出各个帖子:
foreach ( $my_posts as $my_post ) {
$GLOBALS[\'post\'] = $my_post;
setup_postdata( $my_post );
get_template_part( \'content-multi\', $post_type );
}
问题是,我希望模板部分在标准WordPress循环和覆盖标准WordPress查询的情况下(如搜索页面)可用。因此,对全局变量和
setup_postdata()
. 有人能推荐一种更好的方法来实现这一目标吗?
UPDATE: 因此,我构建自定义循环的方式似乎并没有那么糟糕。不过,我仍在努力找出这些页面的提要。RSS对我来说是很新的。有人能给我一些关于生成这些提要的建议吗?