Как по REST API WordPress получить список изображений медиа менеджера

Как по REST API WordPress получить список изображений медиа менеджера

В этой статье, мы научимся считывать данные медиа менеджера по API Вордпресс. Отличительной чертой сегодняшней статьи будет то, что для получения данных, мы будем использовать нативные CURL ф-и PHP а не WP обертку “wp_remote_get(...)”.

Запрос на URL “/wp-json/wp/v2/media/” не требует какой либо авторизации (так же как и при получении постов по АПИ). Нам достаточно лишь выполнить 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 'Не удалось получить данные';
	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 функций мы формируем запрос на получение данные по АПИ с WordPress. Используя “curl_setopt_array(...)”, через второй параметр мы можем полностью настроить наш запрос (что весьма удобно).

Результат выполнения CRUL запроса мы можем получить через две ф-и:

curl_exec(...) - тело ответа
curl_getinfo(...) - информация о заголовках

Проверка полученных данных

if(empty($getinfo_ar['http_code']) || $getinfo_ar['http_code'] != 200)
{
	echo 'Не удалось получить данные';
	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 сайтом проблемы? нужен дополнительный функционал? нестандартный плагин или сверстать новую страницу?
Тогда напишите мне через форму обратной связи, и я постараюсь вам помочь.

Оставить комментарий

Ваш адрес email не будет опубликован.