Показать данные из API в WordPress

У меня есть апи отдыха, в нем есть лекарства и информация о каждом лекарстве.

апи/v1/медицина/ Возвращает это

{
    "success": true,
    "data": [
        {
            "medicineId": 12,
            "medicineName": "Abacavir"
        },
        {
            "medicineId": 10,
            "medicineName": "Alclometasone"
        },
        {
            "medicineId": 15,
            "medicineName": " Alectinib"
        },
        {
            "medicineId": 13,
            "medicineName": "Amiloxate"
        }

а также API/v1/медицина/ID возвращает информацию о лекарстве

{
    "success": true,
    "data": {
        "medicineId": 16,
        "medicineName": " Alendronic acid",
        "medicineDescription": "Alendronic acid is a bisphosphonate that is used for the treatment of some forms of osteoperosis and Paget's disease . It functions by preventing resorption of bone ",
        "sideEffects": "you may experience whilst taking alendronic acid are stomach pain, indigestion or acid reflux,flatulence or bloating, constipation or diarrhoea and muscle, joint or bone pain.",
        "chemicalFormula": "C4H13NO7P2",
        "indication": "Alendronic acid is indicated for the treatment and prevention of osteoporosis in men and postmenopausal women, treatment of glucocorticoid-induced osteoporosis, and Paget's disease of bone. However, alendronic acid is not indicated for use in pediatric populations or patients with a creatinine clearance <35mL/min.",
        "associatedCondition": "Osteogenesis Imperfecta\r\nOsteoporosis\r\nOsteoporosis caused by glucocorticoid\r\nPaget's Disease",
        "alternatives": [],
        "categories": [
            "Agents Causing Muscle Toxicity",
            "Bone Density Conservation Agents",
            "Bisphosphonates"
        ]
    },
    "message": "Successfully retrieved"
}

Я хочу показать список лекарств, и когда я нажимаю на лекарство, появляется всплывающее окно с информацией об этом лекарстве. Все это внутри wordpress

я пробовал это

<?php
$age = file_get_contents('http://link/rest/v1/medicine/');
$array = json_decode($age, true);
$medicine_names = [];
foreach($array['data'] as $key=>$value)
{
 echo ($value['medicineName']). '<br/>' ;    
}
?>

В котором перечислены лекарства

Любая идея, как я могу добиться этого в wordpress?

почему проблема в том, чтобы вставить этот код в wordpress?

Mike Foxtech 06.07.2019 23:12

Это не проблема, я просто не знаю, как написать этот код, который получает данные из API.

Icarus 06.07.2019 23:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

может это поможет

function getData(string $route): array
{
    return json_decode(file_get_contents($route), true);
}

$medicineInfo = [];

foreach(getData('http://148.251.195.245:8080/MediHelp/rest/v1/medicine/')['data'] as $medicine) {
    $medicineInfo[$medicine['medicineId']] = getData(
        sprintf('http://148.251.195.245:8080/MediHelp/rest/v1/medicine/%s', $medicine['medicineId'])
    )['data'];
}

//for example
foreach($medicineInfo as $info): ?>
    <a href = "#popup-for-<?= $info['medicineId'] ?>"><?= $info['medicineId'] ?></a>
    <!-- popup code -->
    <div id = "#popup-for-<?= $info['medicineId'] ?>"><!-- ...$info... --></div>
<?php endforeach ?>

или используйте ajax для отправки данных во всплывающее окно

другой пример

foreach(getData('http://148.251.195.245:8080/MediHelp/rest/v1/medicine/')['data'] as $medicine) {
    $info = getData(
        sprintf('http://148.251.195.245:8080/MediHelp/rest/v1/medicine/%s', $medicine['medicineId'])
    )['data'];?>

    <a href = "#popup-for-<?= $info['medicineId'] ?>"><?= $info['medicineId'] ?></a>
    <!-- popup code -->
    <div id = "#popup-for-<?= $info['medicineId'] ?>"><!-- ...$info... --></div>
<?php } ?>

E_NOTICE : тип 8 -- Неопределенный индекс: MedicineName -- в строке 12 E_NOTICE : тип 8 -- Неопределенный индекс: MedicineId -- в строке 13 E_WARNING : тип 2 -- Недопустимое смещение строки 'medicineName' -- в строке 12 E_WARNING : тип 2 -- Недопустимое смещение строки 'medicineId' -- в строке 13 E_WARNING : тип 2 -- file_get_contents(148.251.195.245:8080/MediHelp/rest/v1/medicine/S): не удалось открыть поток: HTTP-запрос не выполнен! HTTP/1.1 404 -- в строке 6 Исключение: возвращаемое значение getData() должно иметь тип массива, возвращается ноль

Icarus 09.07.2019 11:43

Спасибо, у вас есть какие-нибудь идеи о том, как показать информацию о каждом лекарстве во всплывающем окне, которое появляется, когда я нажимаю на каждое лекарство?

Icarus 09.07.2019 12:52

Другие вопросы по теме