Php 为什么Wordpress查询帖子没有显示正确的帖子?
我尝试使用Php 为什么Wordpress查询帖子没有显示正确的帖子?,php,wordpress,Php,Wordpress,我尝试使用query\u posts查询wordpress post,并尝试将它们保存在一个数组中,以便从数组中检索帖子。这就是我在做的 $posts= array(); $args = array('posts_per_page' =>3,'cat' => 3 ); $posts[] = query_posts( $args ); global $post; if ( ! empty($posts) ) : foreach ($posts as $post) {
query\u posts
查询wordpress post,并尝试将它们保存在一个数组中,以便从数组中检索帖子。这就是我在做的
$posts= array();
$args = array('posts_per_page' =>3,'cat' => 3 );
$posts[] = query_posts( $args );
global $post;
if ( ! empty($posts) ) :
foreach ($posts as $post) {
setup_postdata($post);
echo get_the_title();
}
wp_reset_postdata();
endif;
wp_reset_query();
当我运行这个脚本时,它会显示一个不在
cat
3中的帖子。但是如果我打印($post)它会显示正确的三篇文章。知道我哪里出错了吗?记住query\u posts修改了主循环,所以可能不是来自cat=3的post来自主循环。尝试使用创建新查询
这个方法也应该有效,或者是二次查询的首选方法
global $post;
$posts_args = array('cat' => 3, 'posts_per_page' => 3);
$posts_query = new WP_Query($posts_args);
$posts_arr = $posts_query->get_posts();
if ( ! empty($posts_arr) ) :
foreach ($posts_arr as $post) {
setup_postdata($post);
echo get_the_title();
}
wp_reset_postdata();
endif;
wp_reset_query();
无需将其声明为数组:
global $post;
$args = array('posts_per_page' => 3,'cat' => 3);
$query = query_posts($args);
foreach ($query as $post) {
setup_postdata($post);
the_title();
}
wp_reset_query();
为什么要声明全局$post并按顺序重新分配它?检查这些帖子中是否有一个是粘性的,wordpress有一个东西可以在查询中“注入”粘性帖子,使用
'ignore_sticky_posts'=>1
它仍然不起作用您应该删除对$posts
的空数组的初始分配,并在分配query\u posts
的结果时删除括号。当前,$posts
始终是一个包含单个数组和结果的数组。实际上,我希望$posts
位于数组中,以便在使用多个查询时可以从中获取帖子。我正在使用一个数组将帖子放入数组中。我想从数组中查询帖子。@user3293145 you go posts\u arr我想这是您想要的。需要将其声明为数组,因为我将使用多个查询来获取帖子。@user3293145然后您可以使用多个循环和query\u posts
或将$query
存储到另一个变量中,以便以后在需要时使用这就是你想要的。问题是我想使用多个查询,但在一个数组中显示结果,因为我想从多个查询中混合获得帖子
global $post;
$args = array('posts_per_page' => 3,'cat' => 3);
$query = query_posts($args);
foreach ($query as $post) {
setup_postdata($post);
the_title();
}
wp_reset_query();