Как анализировать переменные из JSON var_dump в WordPress Plugin

Я пытаюсь извлечь данные JSON из моего API и получить данные из каждого ключа, чтобы хорошо отображать HTML / CSS. Прямо сейчас возникают проблемы с получением данных.

Это мой объект db:

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

Я нашел здесь этот ответ , и var_dump работает, он отображает мой объект db на странице. Это мой обновленный плагин wordpress php:

 <?php add_shortcode('mis', function($atts, $data) { $service_url = 'http://local.web.tt.com:8615/api/users'; // Initiate curl $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL,$service_url); $result=curl_exec($ch); curl_close($ch); // Will dump a beauty json :3 // var_dump(json_decode($result, true)); $data = (json_decode($result, true)); var_dump($data); $data = add_shortcode ( array( 'name' => 'name', 'overview' => 'overview', 'benefits' => 'benefits' ), $data ); extract($data); $content .=' <style>li { margin-left: 20px; }</style> <h2>$name</h2> <p>$overview</p> <ul> <li>$data["benefits"][0]</li> <li>$data["benefits"][2]</li> </ul>'; return $content; }); 

Однако у меня возникают проблемы с получением данных:

введите описание изображения здесь

Вот где моя проблема:

 $data = (json_decode($result, true)); var_dump($data); $data = add_shortcode ( array( 'name' => 'name', 'overview' => 'overview', 'benefits' => 'benefits' ), $data ); extract($data); $content .=' <style>li { margin-left: 20px; }</style> <h2>$name</h2> <p>$overview</p> <ul> <li>$data["benefits"][0]</li> <li>$data["benefits"][1]</li> </ul>'; return $content; 

Как получить данные из var_dump, в правые клавиши / vars в моей переменной $ content?

Этот раздел кода довольно странный – что он должен делать?

 $data = add_shortcode ( array( 'name' => 'name', 'overview' => 'overview', 'benefits' => 'benefits' ), $data ); extract($data); 

Чтобы получить доступ к своим данным, вы можете просто сделать

 $data[0]['productname'] 

У вас также есть переменные вывода внутри строки (внутри '' ). Чтобы вывести данные на выход, попробуйте:

 $data = (json_decode($result, true)); var_dump($data); $product = $data[0]; $content = '<style>li { margin-left: 20px; }</style>'; $content .='<h2>' . $product['productname'] . '</h2> <p>' . $product['overview'] . '</p> <ul> <li>' . $product["benefits"][0] . '</li> <li>' . $product["benefits"][1] . '</li> </ul>'; 

Или с петлей:

 $data = (json_decode($result, true)); $content = '<style>li { margin-left: 20px; }</style>'; foreach($data as $product) { $content .='<h2>' . $product['productname'] . '</h2> <p>' . $product['overview'] . '</p> <ul>'; foreach($product['benefits'] as $benefit) { $content .= '<li>' . $benefit . '</li>'; } $content .= '</ul>'; }