使用WP_QUERY获取帖子类型的所有ID

时间:2015-09-08 作者:Ari

我试图使用WP\\u查询获取自定义帖子类型的ID列表,但它返回了不希望的结果,这是内存泄漏和浏览器卡住。

以下是我使用的代码:

    $the_query = new WP_Query("post_type=post&posts_per_page=-1&field=ids");    
    if ($the_query->have_posts()) {
      while ($the_query->have_posts()){
         echo get_the_ID();
      }
    }
它使我的浏览器无限尝试加载页面。也许有人知道上面的代码有什么问题。。

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

你错过了the_post() 循环中的函数调用。只需添加

$the_query->the_post();
在您的循环中。除此之外,您的循环应该可以工作

编辑查询完成后,也不要忘记重置postdata

SO网友:Marek

我知道您想要“使用WP\\u查询”的解决方案,但为什么不使用get_posts() 为了这个?

$posts_ids = get_posts(\'post_type=post&posts_per_page=-1&fields=ids\');
// $posts_ids is now an array of IDs
echo implode(\',\', $posts_ids); // prints: 123, 124, 125, 126, ...

// or

foreach( $posts_ids as $id ) {
    echo $id;
}