You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress自定义文章获取异常:仅返回9篇,共30篇求助

解决WP_Query仅返回部分自定义文章的问题

嘿,我来帮你排查下这个问题!你现在只能拿到9篇文章,核心原因是WordPress的WP_Query有个默认限制——它默认最多返回10篇已发布状态的文章,你看到9篇大概率是有一篇文章处于草稿、私密这类非发布状态,没被默认查询包含进去。要获取全部30篇文章,只需要调整查询参数即可:

修改后的代码

// 初始化标题数组,避免未定义变量警告
$post_titles = array();

$post_ids = new WP_Query(array(
    'post_type' => 'sample',
    'fields' => 'ids',
    'posts_per_page' => -1, // 关键参数:设置为-1可获取所有符合条件的文章
    'post_status' => 'publish' // 可选:明确指定只获取已发布文章,如需其他状态可改为数组,比如array('publish', 'draft')
));

if ($post_ids->have_posts()): 
    foreach( $post_ids->posts as $id ): 
        $post_titles[] = apply_filters('the_title', get_the_title($id)); 
    endforeach; 
endif;

// 重置查询,避免干扰后续WordPress的全局查询
wp_reset_postdata();

额外注意事项

  • posts_per_page设为-1会返回所有匹配的文章,但如果你的文章数量极大(比如上千篇),可能会拖慢页面加载速度,这种情况建议使用分页逻辑或者限制返回数量。
  • 如果需要包含非发布状态的文章(比如草稿、私密文章),可以把post_status参数改成数组形式,例如array('publish', 'draft', 'private')。
  • 记得提前初始化$post_titles数组,否则当没有匹配文章时,后续使用这个变量会触发PHP的未定义变量警告。

内容的提问来源于stack exchange,提问作者user9426983

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:33:09