通过 WordPress HTTP API 获取 Restful API 的 JSON 返回内容并解析

WordPress 4.0 马上出来了,一个亮点就是 Restful API 的加入,今天我们提前来看看怎么获取 Restful API 的 JSON 的内容并显示出来。过程就是用 PHP 获取远程 JSON 的内容,然后把获取到的 JSON 转化为 PHP 对象,然后循环输出内容。通过 PHP 和 WordPress HTTP API 的方式都可以实现,我们先来看一下这两种方式的实现代码。

PHP fopen 方式

$handle = fopen("http://yoursite.com/news","rb");

$content = "";

while (!feof($handle)) {
    $content .= fread($handle, 10000);
}

fclose($handle);

$content_array = json_decode($content);  #JSON内容转换为PHP对象

WordPress HTTP API 方式

WordPress 给我们提供一套很方便的 HTTP API(详细使用方法参考 [WordPress HTTP API](http://codex.wordpress.org/HTTP_API)),我们可以使用 HTTP API 很方便的实现上面的功能。

$content = wp_remote_retrieve_body( wp_remote_get('http://yoursite.com/news'));    
$content_obj = json_decode($content); #JSON内容转换为PHP对象

可以看出,WordPress 的方法是在是太简单了,一行代码就实现了 PHPfopen 方法几行的功能,并且功能更加语义化,理解起来更容易。

显示获取的内容

已经获取了 JSON 的内容,并转化为了 PHP 对象,显示的时候直接循环输出对象的内容就可以了。

foreach ($content_obj->data as $key) 
    echo $key->title;
}

适当的格式化上面的文字,显示出来的效果和直接调用 WordPress 内容是一样的。

Related Posts

0条评论

  1. 博主你好,我想请教你一个问题,我想给我的wordpress网站写一些网络接口,通过网络接口可以查询想要的数据,我在网上搜到答案说用JSON API插件,我安装之后不知道怎么查询具体某一篇博客的具体数据,另外,我有些特别的需求,需要返回自定义字段的值或写入自定义字段的值。在看到你这篇博客的时候,我觉得应该是我想要找的,但不知道怎么使用你这个方法,能否在说的详细一点,感谢博主!

    1. 官方文档介绍得很清楚了:http://v2.wp-api.org/reference/posts/。如果只是调用小部分数据,完全可以自己写一个接口。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注