如何在CodeIgniter视图中展示从WordPress API通过CURL获取的结果
解决CodeIgniter视图中展示WordPress REST API数据的问题
首先,你遇到的问题根源主要有两个:
- 控制器中
json_decode($response)默认返回的是对象类型,但你在视图里用了数组的下标访问方式(比如$post['id']),这会导致报错; - WordPress REST API返回的字段是嵌套结构,比如
title并不是直接的字符串,而是包含rendered属性的对象/数组。
解决方案一:使用对象方式访问数据(保持控制器原有写法)
控制器代码不需要改动(因为你用的是$hasil = json_decode($response);),只需要调整视图里的循环代码,用对象属性访问符->来获取对应值:
<?php foreach($posts as $post) : ?> <tr> <td><?= $post->id ?></td> <td><?= $post->title->rendered ?></td> <!-- 需访问嵌套的rendered属性拿到标题文本 --> <td><?= $post->link ?></td> </tr> <?php endforeach;?>
解决方案二:切换为关联数组方式访问数据
如果你更习惯用数组下标访问,可以修改控制器里的json_decode,加上第二个参数true,让它返回关联数组:
// 控制器中的修改 $hasil = json_decode($response, true);
然后视图里的循环就可以调整为数组嵌套访问:
<?php foreach($posts as $post) : ?> <tr> <td><?= $post['id'] ?></td> <td><?= $post['title']['rendered'] ?></td> <td><?= $post['link'] ?></td> </tr> <?php endforeach;?>
额外小提示
你可以在控制器里用var_dump($hasil)先确认完整的数据结构,这样能更清晰地看到每个字段的层级,避免嵌套访问出错~
内容的提问来源于stack exchange,提问作者Dhargombeths
相关产品推荐
相关产品推荐

