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

简单数组查询:WordPress遍历people CPT文章ID数组输出文章标题

问题根因

从你贴的print_r输出能明确判断,$persons是纯一维数组,每个元素就是直接存储的文章ID数字,不存在嵌套的对象结构。你代码里写的$person->ID完全无效——遍历到的$person本身就是30131、29763这类数字,没有对象属性可读取,传给get_the_title()的实际是空值,自然拼接不出任何标题内容。
除此之外原代码还有两个小问题:

  • 没有提前初始化$peopleout变量,首次循环拼接时会触发PHP未定义变量的警告
  • 最后echo $peopleout语句末尾漏了分号,会触发PHP解析错误

修正后的可用代码

// 提前初始化拼接字符串
$peopleout = '';
foreach( $persons as $person_id ) {
    // 直接把作为元素值的ID传入函数即可
    $title = get_the_title( $person_id );
    $peopleout .= $title . ', ';
}
// 去掉末尾多余的逗号后输出,补全语句分号
echo rtrim( $peopleout, ', ' );

可选优化

如果需要严格只取people这个自定义文章类型的标题,避免ID对应其他内容类型时输出错误标题,可以在循环内加一层类型校验:

$peopleout = '';
foreach( $persons as $person_id ) {
    // 跳过不属于people CPT的条目
    if ( get_post_type( $person_id ) !== 'people' ) {
        continue;
    }
    $title = get_the_title( $person_id );
    $peopleout .= $title . ', ';
}
echo rtrim( $peopleout, ', ' );

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 03:36:08