Есть плагин коронавируса по городам?
-
Видел несколько плагинов, которые отображают статистику заражения коронавирусом по странам. Интересует такой же, но по городам
-
Triptikon, а вы вообще в каком виде хотите отображать эти данные?
exmi, да просто в виде виджета. что-то типа такого:
Коронавирус в …
За сутки:
новых заболевших: 100
выздоровевших: 10
умерших: 5Triptikon, для одного города, верно?
Если делать виджет на примере этого API, то там нет ежедневной статистики для этого города, есть общее количество подтверждённых случаев заражения, кол-во скончавшихся и кол-во выздоровевших. Вам именно ежедневная статистика нужна?
exmi, ну желательно ежедневная, но на крайняк можно и общую, главное чтоб менялась динамично и содержала точные данные
Triptikon, для РФ и Украины бесплатных API с ежедневной статистикой по городам я не видел, а вот как я выше написал (общее количество подтверждённых случаев заражения, кол-во скончавшихся и кол-во выздоровевших + дата обновлений базы) сделать можно.
exmi, как?
Triptikon, самое простое — шорткодом. Создать свой шорткод, который будет забирать нужные данные по вашему городу, и этот шорткод выводить уже в нужном вам месте на сайте.
exmi, а создать шорткод этот как?)
Triptikon, это немного кода на PHP 🙂
я знаю только, что в functions.php нужно добавить add_shortcode, но как он должен выглядеть в целом без понятия)
Triptikon, жесть)
Приблизительно так (вёрстку/стилизацию можете добавить сами в зависимости от дизайна сайта):
function covid_mykolaiv_stats( $atts ){ $jsonmykolaiv = file_get_contents('https://www.trackcorona.live/api/cities/Mykolaiv'); $decodedobj = json_decode(utf8_encode($jsonmykolaiv)); if (empty($decodedobj) || json_last_error() !== JSON_ERROR_NONE) { return "API недоступен / Ошибка JSON"; } else { echo "<div><h4>Статистика COVID-19 по г.Николаев</h4><p>Всего заражений: " . $decodedobj->data[0]->confirmed . "</p><p>Скончалось больных: " . $decodedobj->data[0]->dead . "</p><p>Выздоровевших: " . $decodedobj->data[0]->recovered . "</p><br />Данные обновлены: " . $decodedobj->data[0]->updated . "</div>"; } } add_shortcode( 'covid-mykolaiv', 'covid_mykolaiv_stats' );
Шорткод
[covid-mykolaiv]
уже выводить в нужном месте на сайте, к примеру, вот так:<?php echo do_shortcode( '[covid-mykolaiv]' ); ?>
С
file_get_contents()
могут возникнуть сложности, в зависимости от хостинга, так что ещё возможен вариант сcURL
.не очень хороший вариант кода на продакшен.
если это будет виджет для каждой страницы сайта — тем более.По запросу на внешний сайт при каждой генерации страницы… брр
function covid_mykolaiv_stats( $atts ){ $jsonmykolaiv = get_transient('mykolaivcoviddata'); if (!$jsonmykolaiv) { $jsonmykolaiv = file_get_contents('https://www.trackcorona.live/api/cities/Mykolaiv'); set_transient('mykolaivcoviddata', $jsonmykolaiv, 7200); } $decodedobj = json_decode(utf8_encode($jsonmykolaiv)); if (empty($decodedobj) || json_last_error() !== JSON_ERROR_NONE) { return "API недоступен / Ошибка JSON"; } else { echo "<div><h4>Статистика COVID-19 по г.Николаев</h4><p>Всего заражений: " . $decodedobj->data[0]->confirmed . "</p><p>Скончалось больных: " . $decodedobj->data[0]->dead . "</p><p>Выздоровевших: " . $decodedobj->data[0]->recovered . "</p><br />Данные обновлены: " . $decodedobj->data[0]->updated . "</div>"; } } add_shortcode( 'covid-mykolaiv', 'covid_mykolaiv_stats' );
как-то так.. чтобы не просить данные постоянно
Yui, это просто пример, так-то там допиливать можно много чего.
exmi, fierevere, спасибо! Правда не могу понять как поменять формат даты где «Данные обновлены» на d.m.Y, H:i и понять как добавлять виджету с этим кодом фон)
Triptikon,
Правда не могу понять как поменять формат даты где «Данные обновлены» на d.m.Y, H:i
date('d.m.Y H:i', strtotime($decodedobj->data[0]->updated));
как добавлять виджету с этим кодом фон
<div>
‘ы уже есть, вам осталось только задать им нужные стили (CSS).
- Тема «Есть плагин коронавируса по городам?» закрыта для новых ответов.