WordPress抓取自定义帖子类型

时间:2016-03-31 15:29:33

标签: php wordpress

当我使用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

1 个答案:

答案 0 :(得分:-1)

<?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(); ?>