我有一个与2个自定义帖子类型冲突的问题。我有一个模板文件存档介质。php和创建了相关的“媒体”自定义帖子类型。这一切都很好,但是在侧边栏中,我有一个来自第二个(事件)自定义帖子类型的事件列表,它在各个方面都非常有效,including on this page, 除非没有媒体项目(例如,如果我将它们全部设置为草稿),奇怪的是events 列表不显示任何事件(if ( have_posts() )
失败)。我似乎不明白为什么。我在归档页面上的循环相当标准,不使用WP\\u query或query post,大致是:
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
.... LOOP ...
<?php endwhile; else : ?>
..... No media items ....
<?php endif; ?>
事件列表是通过以下函数生成的(我保留了这两个参数以保存对代码的完全拆卸,但目前没有使用它们)。此外,我也记不起我为什么要将$post全球化,这是在最初的代码中,但我已经尝试了内外,没有什么不同。我试过的另一件事是
wp_reset_query and wp_reset_postdata
function display_events($events_shown, $days_historical){
// global $post;
$args = array(
\'post_type\' => \'events\',
\'posts_per_page\' => 5,
\'order\' => \'ASC\'
);
$events_query = new WP_Query( $args );
if ( have_posts() ) : while ( $events_query->have_posts() ) : $events_query->the_post();
the_title();
endwhile; else :
echo "no events";
endif;
wp_reset_postdata();
}
此外,我还创建了第三个测试自定义帖子类型和归档页面,当我在该归档页面上时,出现了完全相同的问题,添加新的媒体项目并没有解决问题,但添加新的测试自定义帖子类型确实解决了问题,因此,二次查询会受到以下事实的影响:页面运行的模板中没有自定义post类型的项目(即在存档介质中没有介质项目,在存档测试中没有测试项目)
EDIT 我刚刚意识到,我可以通过重命名归档页来强制归档,从而将归档页从等式中去掉。php来显示媒体存档。这样做给了我完全相同的结果。