无法在wordpress php插件中获取JSON

时间:2015-01-19 17:07:59

标签: php json wordpress api wordpress-plugin

我正在测试我使用本地安装的wordpress在本地构建的API。

我的API路径类似于: http://local.web.tt.com:8615/api/product

当我的节点服务器运行时,当你转到该链接时(mongodb集合对象),它会在浏览器中显示:

[
    {
        "_id":"54bd5fbb646174009a450001",
        "productname":"Product 1",
        "overview":"Overview Title",
        "benefits":
            [
                "List item 1",
                "List item 2",
                "List item 3"
            ]
    }
]

我的PHP wordpress短代码插件

add_shortcode('product', function($atts, $content) {
    $service_url = 'http://local.web.tt.com:8615/api/product';
    $data = json_decode($service_url, true);

    return $data;
});

当我在博文中添加[product]时,基本上没有任何内容显示在页面上。如果我只返回一个简单的字符串,那么短代码就可以了。

我也试过这个:

add_shortcode('product', function($data) {
    $service_url = 'http://local.web.tt.com:8615/api/product';
    $get = file_get_contents($service_url);
    $data = json_decode($get, true);
    return $data;
});

然而,这只会将Array吐出到短代码所在的位置:

enter image description here

我要做的是捕获JSON对象的每个键中的字符串,然后使用HTML& amp; CSS。即:福利array项目将显示为项目符号。

基本上是这样的:

$content .='
    <h2>$data.overview</h2>
    <ul>
       <li>$data.benefits[0]
       <li>$data.benefits[1]'

return $content;

知道我错过了什么吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

{
"_id": "84b7e4c7946174009a1f0000",
"name": "Name of product",
"overview": "Long blah blah blah blah here...",
"benefits": [
    "List item 1",
    "List item 2",
    "List item 3",
    "List item 4"
]
}

修复你的json以获得键的引号

 $service_url = 'http://local.web.tt.com:8615/api/product'; 
 $get = file_get_contents($service_url);
 $data = json_decode($get, true);
 return $data;

另外,你为什么要返回阵列?