当我使用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(); ?>