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


WordPress fetching all posts of a custom post type

当我使用get_posts()函数为自定义帖子类型获取所有帖子时,我总是会得到内存大小限制已经达到,即使我想从数据库中获取的帖子只有300个。

增加内存不是一个选项,启用分页也不是。

是什么导致了这种情况,我该如何解决。因为从这些帖子中,我稍后还必须获取元数据,并将其拆分为2个数组/对象和更多内容。它需要能够处理每个页面请求5000多个帖子/记录。

有什么建议、想法、建议吗?

首次尝试:

$args = array(
    'posts_per_page'    => 300,
    'offset'            => 0,
    'category'          => '',
    'category_name'     => '',
    'orderby'           => 'title',
    'order'             => 'ASC',
    'post_type'         => 'partners',
    'post_status'       => 'publish',
    'suppress_filters'  => true,
    /*'meta_key'        => 'partner-submission-status',
    'meta_value'        => 'goedgekeurd',*/
);
$posts = get_posts($args);
var_dump(count($posts));

第二次尝试:

$query = $wpdb->get_results("
    SELECT p.ID, p.post_title
    FROM wp_posts as p
    INNER JOIN wp_postmeta as m
    on p.ID = m.post_id
    WHERE p.post_type = 'partners' AND
    p.post_status = 'publish'
");
var_dump(count($query));die;

但他们两个甚至都没有到达var_dump

<?php query_posts( 'post_type=your_post_type&posts_per_page=10' ); 
if (have_posts()) :  while (have_posts()) : the_post(); ?>
...........
<?php  endwhile; endif; wp_reset_query(); ?>