Як за REST API WordPress отримати список зображень медіа менеджера

Як за REST API WordPress отримати список зображень медіа менеджера

У цій статті ми навчимося зчитувати дані медіа-менеджера через API WordPress. Відмінною рисою сьогоднішньої статті буде те, що для отримання даних ми будемо використовувати нативні CURL-функції PHP, а не WP-обгортку “wp_remote_get(...)”.

Запит до URL “/wp-json/wp/v2/media/” не вимагає жодної авторизації (так само, як і при отриманні постів через API). Нам достатньо просто зробити GET-запит до “мій-сайт/wp-json/wp/v2/media/” та отримати відповідь у форматі JSON.

У цьому можна переконатися навіть без PHP-коду — просто введіть зазначений URL у адресний рядок браузера. Сайт поверне вам дані у форматі JSON. Якщо ви перевіряєте в Firefox, дані відобразяться в зручному для читання вигляді. Якщо ж ви користуєтесь Chrome — рекомендую встановити розширення “JSONView” або подібне. Іншими браузерами я не користуюсь.

Повернімось до нашого коду. Нижче наведено повний робочий приклад:

$ch = curl_init();
curl_setopt_array($ch, [
	CURLOPT_URL => мой-сайт/wp-json/wp/v2/media/',
	CURLOPT_RETURNTRANSFER => true,
]);
$exec = curl_exec($ch);
$getinfo_ar = curl_getinfo($ch);

if(empty($getinfo_ar['http_code']) || $getinfo_ar['http_code'] != 200)
{
	echo 'Failed to retrieve data';
	die;
}

$json_ar = json_decode($exec, true);
echo "<pre dir='ltr'>\$json_ar = ";print_r($json_ar); echo "</pre>";

curl_close($ch);

Умовно код можна поділити на три частини:

  1. Отримання даних
  2. Перевірка
  3. Відображення

Отримання даних

$ch = curl_init();
curl_setopt_array($ch, [
	CURLOPT_URL => мой-сайт/wp-json/wp/v2/media/',
	CURLOPT_RETURNTRANSFER => true,
]);
$exec = curl_exec($ch);
$getinfo_ar = curl_getinfo($ch);

За допомогою набору функцій CURL ми формуємо запит для отримання даних через API WordPress. Функція “curl_setopt_array(...)” дозволяє зручно налаштувати параметри запиту через асоціативний масив.

Результат виконання CURL-запиту можна отримати за допомогою двох функцій:

curl_exec(...) — тіло відповіді
curl_getinfo(...) — інформація про заголовки відповіді

Перевірка отриманих даних

if(empty($getinfo_ar['http_code']) || $getinfo_ar['http_code'] != 200)
{
	echo 'Failed to retrieve data';
	die;
}

Перевірка тут досить проста: якщо відсутній код відповіді або він не дорівнює 200 (тобто OK), значить щось пішло не так — виводимо повідомлення або генеруємо виняток.

Відображення даних

У нашому випадку ми обмежимось простим тестовим виводом на екран.

$json_ar = json_decode($exec, true);
echo "<pre dir='ltr'>\$json_ar = ";print_r($json_ar); echo "</pre>";

curl_close($ch);

І в кінці закриваємо CURL-з'єднання.

Пости на схожі теми

З вашим WordPress сайтом проблеми? потрібний додатковий функціонал? нестандартний плагін чи згорнути нову сторінку?
Тоді напишіть мені через форму зворотного зв'язку, і я намагатимусь вам допомогти.

Напишіть коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *