Я уже несколько дней бьюсь головой и надеюсь, что кто-то гораздо умнее меня (что не сложно, так как я новичок) сможет пролить свет на мою проблему.У меня есть данные json, поступающие из разных API, первый API дает мне список продуктов и маршрут к каждому отдельному API продуктов, который я затем использую для получения данных и их декодирования в многомерный массив PHP в WordPress.Мне нужно извлечь значения в определенном порядке и добавить форматирование HTML, а затем вернуть их в строку.
Это упрощенное представление моих фидов json, которые были декодированы в массив, во-первых, это json, который я извлекаю адрес API из:
{
"data": [
{
"product": "Product A",
"api": "some/api/feeda",
"catagory": "some catagory"
},
{
"product": "Product B",
"api": "some/api/feedb",
"catagory": "other catagory"
}
]
}
Второй, затемизвлекает и возвращает продукт json:
{
"data": {
"title": "Product A",
"catagory": "Catagory 1",
"specifications": [
{
"detail": "Technical detail 1",
"notes": "",
"subDetails": [
{
"width": "A not so wide version",
"height": "This one is shorter"
},
{
"width": "a wider version",
"height": "a taller version"
}
]
},
{
"detail": "Technical detail 2",
"notes": "a little bit about detail 2 that is different"
},
{
"detail": "Technical detail 3",
"notes": "something boring to do with detail 3"
}
]
}
}
Моя цель - создать сообщение только из выбранной категории и заполнить его заголовком и содержимым в формате html, извлеченным из «спецификаций» (notes и subDetails), поэтомучто содержимое поста выглядит примерно так:
<b>Technical detail 1</b>
A not so wide version
a wider version<br>
<b>Technical detail 2</b>
a little bit about detail 2 that is different<br>
<b>Technical detail 3</b>
something boring to do with detail 3<br>
Прежде чем я начну создавать целую кучу постов, я не хочу использовать 'wp_insert_post', я использую 'echo', чтобы я мог видетькакие результаты я получаю.Я дошел до PHP и сумел создать список с каждым названием продукта, но я больше ничего не пробовал (мне удалось получить спецификации продуктов в списке, но они были неправильными!)
function product_list($productlist$) {
$url_request = wp_remote_get('https://main/api/products/v1/all');
if (is_wp_error($url_request)) {
return false; // Bail early
}
$body = wp_remote_retrieve_body($url_request);
$url_json = json_decode($body, true);
$url_data = $url_json['data'];
if (!empty($url_data)) {
foreach($product_url as $product) {
$singleproduct_url = $product["url"];
$singleproduct_urlrequest = wp_remote_get('https://main/api/products/v1'.$single_product_url.
'');
$singleproduct_body = wp_remote_retrieve_body($singleproduct_urlrequest);
$singleproduct_json = json_decode($singleproduct_body, true);
$singleproduct_data = $singleproduct_json['data'];
$productspecs = $singleproduct_data['specifications'];
foreach($productspecs as $productspec) {
$specdetail = "<br>".$productspec["detail"];
$subdetails = $productspec['subDetails']
if (!empty($productspec['note'])) {
$productnote = $productspec['note'];
} else {
foreach($subdetails as $subdetail) {
$subdetailtext = $subdetails[width];
}
};
echo '<li>';
echo $singleproduct_data["title"];
echo $productnote;
echo '</li>';
}
echo '</ul>';
}
}
Любая помощь будет принята с благодарностью !!!