我有以下数组:
array (12,15,21,32,33);
然后我使用以下查询来获取帖子(上面的ID):
$the_query = new WP_Query( array("post__in"=>$ids_array) ); // edited
while($the_query->have_posts())
{
$the_query->the_post(); // added on edit, but still does not work
the_title()."<br />";
}
但我什么都没得到,没有错误也没有中断。我检查了ID,但它们是正确的。
编辑:我已将此查询放在加载到页脚的模块的末尾。我不知道它是否重要:
答案 0 :(得分:1)
您忘了添加while ( $the_query->have_posts() ) : $the_query->the_post();
。
您只是在查看是否有帖子,但没有采取任何措施
$ids_array = array (12,15,21,32,33);
$the_query = new WP_Query( array('post__in'=>$ids_array) );
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><?php the_title(); ?></h2></br>
<?php
endwhile;
wp_reset_postdata();
endif;
?>
修改强>
我认为这里的根本问题不是此自定义查询,因为此自定义查询有效。从您的评论中可以看出,您在同一页面上使用了另一个自定义查询。
我不知道第一个查询的代码是什么样的,但是这里有一些你需要去查看的故障排除点
很可能您没有在第一次查询时重置postdata。这将破坏您的第二个查询。当您使用wp_reset_postdata
和WP_Query
运行自定义查询时,get_posts
非常重要。在第一个wp_reset_postdata
实例后检查您是否使用过WP_Query
。您的第一个查询格式应与我的答案中的格式相同
您应该为WP_Query
的每个实例使用不同的变量。例如,第一个实例为$variable1 = new WP_Query( YOUR ARGUMENTS )
,第二个实例为$variable2 = new WP_Query( YOUR ARGUMENTS )