如何从LearnDash返回的嵌套数组对象中提取id与post_title?
解决方案
你只需要通过对象属性访问符 -> 来获取WP_Post对象里的post_title字段,修改循环代码即可:
foreach ($my_lessons as $k => $v) { $my_return .= "<br>".$k."<br>"; $my_return .= "<br>lesson ID: ".$v["id"]."<br>"; // 获取课程标题 $my_return .= "<br>lesson title: ".$v["post"]->post_title."<br>"; }
补充说明
$v["post"]是WP_Post类型的对象,不是数组,因此不能用数组下标$v["post"]["post_title"]的方式访问属性,必须使用对象属性的访问语法->。- 为避免数据异常导致的报错,建议先判断
post对象是否有效再取值:
foreach ($my_lessons as $k => $v) { $my_return .= "<br>".$k."<br>"; $my_return .= "<br>lesson ID: ".$v["id"]."<br>"; if (isset($v["post"]) && $v["post"] instanceof WP_Post) { $my_return .= "<br>lesson title: ".$v["post"]->post_title."<br>"; } else { $my_return .= "<br>lesson title: 无有效标题<br>"; } }
内容的提问来源于stack exchange,提问作者Dottie Natal
相关产品推荐
相关产品推荐

