Wordpress:获取自定义类型的所有帖子

时间:2014-08-11 06:58:22

标签: wordpress

我有这个奇怪的问题。我想要抓取所有自定义类型的帖子,这是我的代码段。

$query = new WP_Query(array(
    'post_type' => 'custom',
    'post_status' => 'publish'
));


while ($query->have_posts()) {
    $query->the_post();
    $post_id = get_the_ID();
    echo $post_id;
    echo "<br>";
}

wp_reset_query();

这只能获得其中的6个,而我在数据库中有超过50条符合该条件的记录。谁能告诉我哪里出错了?

非常感谢!

5 个答案:

答案 0 :(得分:37)

'posts_per_page' => -1,

将此添加到WP_QUERY参数数组中,它应该返回此自定义帖子类型的所有帖子。

答案 1 :(得分:21)

这会使用get_posts获取自定义类型的所有帖子:

$posts = get_posts([
  'post_type' => 'custom',
  'post_status' => 'publish',
  'numberposts' => -1
  // 'order'    => 'ASC'
]);

答案 2 :(得分:5)

要返回的帖子数量在设置&gt;下设置。阅读

您可以传递要查询的帖子数量。

'posts_per_page' => 'number of posts'

答案 3 :(得分:5)

您永远不要使用:

"document-123":{
   "match":true, "value":9.41881, "description":"sum of:",
   "details":[
     {"match":true, "value":9.41881, ... },
     {"match":true, "value":0.0,
      "description":"Score based on 1 child docs ..., best match:",
      "details":[{"match":true, "value":11.7847, 
        "description":"sum of:", "details":[ ... ]}]}]},

如果您谈论的是SQL查询速度,它会很慢且无效。因此,最好使用一些大整数。

  

这是性能危险。如果我们有100,000个帖子怎么办?这可能会使站点崩溃。例如,如果您正在编写小部件,并且只想获取所有自定义帖子类型,请为您的情况确定一个合理的上限。

更多详细信息在这里: https://10up.github.io/Engineering-Best-Practices/php/#performance

答案 4 :(得分:-5)

建议使用整数而不是'-1'例如:

'posts_per_page' => 999999,