
Система управления контентом (CMS) WordPress пользуется большой популярностью. По сравнению с другими CMS, ее относительно легко использовать для создания веб-сайтов для различных нужд. Поддерживать веб-сайты также легко для редакторов с хорошими навыками работы с Office. Более того, веб-администраторы могут получить доступ к более чем 55 000 плагинов, которые выполняют целый ряд задач веб-сайта и в основном доступны бесплатно в базовой версии.
Мы обобщили все преимущества для вашего сайта WordPress в ценовых моделях «Essential», «Business» и «Unlimited». Воспользуйтесь простым процессом настройки, интегрированной системой безопасности и нашей оптимизированной платформой для вашего WordPress хостинга.
- Что такое WordPress REST API?
- Для чего используется WordPress REST API?
- Терминальный доступ к базе данных
- Использование WordPress REST API с доступом через браузер
- WordPress REST API: практический пример
- Считывание сообщения с помощью PHP
- Считывание поста с помощью jQuery
- А как насчет сайтов с другими системами управления контентом?
- Блокирование доступа к WordPress REST API
Что такое WordPress REST API?
WordPress REST API — это интерфейс, который позволяет взаимодействовать с базой данных, используемой WordPress. API расшифровывается как «интерфейс прикладного программирования». Он обеспечивает связь между различными программами в соответствии с определенной системой. Это можно сравнить с диалогом между двумя людьми, которые понимают друг друга только тогда, когда используют один и тот же язык. Более подробную информацию вы можете найти в нашей статье об API.
Аббревиатура REST означает «передача репрезентативного состояния». Принципы обмена информацией были разработаны американским компьютерщиком Роем Филдингом в 1994 году:
- Единообразие: URL-адреса для доступа к ресурсам должны быть единообразными, согласованными и доступными с помощью общего подхода, например GET.
- Разделение клиент-сервер: Если технология на стороне сервера меняется (например, WordPress), приложение на стороне клиента (например, app) должно иметь возможность доступа к нему.
- Нестационарность: Сервер не меняет своего состояния при новом запросе через API и не хранит запрос.
- Возможность кэширования: Это обеспечивает высокую скорость и соответствие на стороне сервера или клиента.
- Многоуровневая система: Доступ возможен на нескольких уровнях.
- Код по требованию (опционально): Код для локального исполнения отправляется клиенту только по мере необходимости.
В WordPress эти требования являются стандартными в ядре — т.е. сердце системы управления контентом — начиная с версии 4.7. До этого, до 13 мая 2018 года, существовал плагин «WP REST API (WP API)». Начиная с версии WordPress 5.x, в ядро системы были добавлены элементы, расширяющие существующие возможности коммуникации с другими (веб-) приложениями и приложениями.
Для чего используется WordPress REST API?
Интерфейс обеспечивает прямую связь с базой данных, используемой WordPress, которая содержит всю информацию веб-сайта. Эта база данных используется с системой управления базами данных MySQL — программой с открытым исходным кодом. Для связи существуют команды, которые позволяют получить доступ через «встроенный» WordPress API. Здесь возможны несколько подходов:
Терминальный доступ к базе данных
WordPress REST API позволяет получить доступ к содержимому сайта WordPress через командную строку в Windows:
- Нажмите правой кнопкой мыши на символ Windows > «Выполнить» > введите «cmd» в окне > «OK».
- Активируйте поиск на панели задач > введите «cmd» > нажмите на приложение «Командная строка».
Или Терминал в macOS:
- Введите комбинацию клавиш «cmd» + [пробел] + «Терминал» и дважды щелкните по результату поиска
- В верхней строке меню на рабочем столе выберите «Перейти к» > «Служебные программы» и в появившемся окне дважды щелкните на «Терминал»
- В «Dock» нажмите на «Программы» > «Служебные программы» > «Терминал».
Введите фактические команды в мигающую подсказку на экране, например:
C:UsersYourUserName>_
Введите следующую команду:
curl -X OPTIONS -i https://yourdomain.com/wp-json/
Нажмите «Enter» для запуска, и через несколько мгновений на экране появится результат. Это основные данные сайта с разрешенными опциями («OPTIONS»). Здесь видно, что используется команда GET, например: «Разрешить: GET».

Используя следующую команду, вы получите все данные из базы данных — идентично по содержанию подходу ниже.
curl -X GET http://yourdomain.com/wp-json/
Использование WordPress REST API с доступом через браузер
Доступ к содержимому базы данных WordPress также можно получить через HTTP-запрос браузера. Здесь используется JSON:
https://yourdomain.com/wp-json/
JSON расшифровывается как «JavaScript Object Notation», это текстовый формат для обмена данными. Его легко изучать и читать, он универсален. Узнайте больше в нашем учебнике по нотации JSON LD и в статье о междоменном запросе данных с помощью JSONP.

Доступная информация представлена как открытая книга. Для более глубокого изучения содержимого сайта WordPress REST API с его обширным набором команд позволяет выполнять детальные запросы к определенным компонентам из базы данных — например, запросить посты следующим образом:
https://yourdomain.com/wp-json/wp/v2/posts
Это дает вам обзор всех постов в базе данных, включая все существующие версии, ссылки, медиаконтент, авторов и многое другое. Отдельный пост четко обозначен в базе данных WordPress своим ID:

Если вы хотите отобразить отдельный пост в браузере, вставьте его ID следующим образом:
https://yourdomain.com/wp-json/wp/v2/posts/6576

Эту процедуру можно выполнять со всеми типами контента: постами, страницами, медиа, авторами и другими. Руководство по REST API, содержащее полный справочник команд, можно найти на страницах разработчиков WordPress.org.
WordPress REST API: практический пример
Зачем нам нужен API WordPress? Позвольте нам продемонстрировать это на простом практическом примере. Новый веб-сайт предназначен для сбора новостей от других интернет-провайдеров. Это будет работать с WordPress REST API только в том случае, если сайты, предоставляющие новости, также запрограммированы на WordPress. Здесь содержимое запрашивается с указанием их идентификаторов на выбранных серверах.

Для того чтобы постоянно иметь доступ к самому актуальному содержимому, можно использовать различные варианты программирования — например, скриптовые языки PHP или библиотеку JavaScript jQuery. Мы можем показать это на двух простых примерах кода для WordPress API.
Считывание сообщения с помощью PHP
Чтобы считать пост с другого сайта WordPress, на HTML-странице между <body> и </body> встраивается секция кода. Эта страница должна иметь возможность обработки PHP. В данном случае с именем файла «test-wp-rest-api.php». Названия полей для отображения можно взять из JSON-запроса, показанного выше (guide, title, link, content и т.д.). Раздел кода состоит из PHP-скрипта, который извлекает информацию, и HTML-элемента, который возвращает считанные данные через PHP:
<?php
$url = ‘https://www.mywebsite.com/wp-json/wp/v2/posts/6576'; // The JSON query path with ID
$data = file_get_contents($url); // Transfer the content into a variable
$mydata = json_decode($data, true); // Decode JSON
?>
<h1>PHP: Read out a post via WordPress REST-API</h1> // Heading
<div id="mydata">
<?php echo $mydata['content']['rendered']; ?> // Output of 'content' with the ID 6576
</div>

Считывание поста с помощью jQuery
Альтернативой для считывания содержимого является jQuery. В этом случае библиотеку необходимо интегрировать в заголовок страницы. Тогда все будет работать и с файлом с окончанием .html.
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> // Integrate
jQuery
<script>// The section for reading out the post data
$(function() {
$.getJSON('https://mtmedia.de/wp-json/wp/v2/posts/6576', function(alldata) {
var contentElm = alldata.content.rendered
$(contentElm).appendTo("#mydata");
});
});
</script>
</head>
<body>
<h1>jQuery: Read out a post via WordPress REST-API</h1> // Heading
<div id="mydata"> Output of 'content' of the post with the ID 6576
</div>
</body>
Результат идентичен браузерному представлению, полученному с помощью вывода PHP. При использовании jQuery содержимое возвращается в DIV-контейнере «mydata» без дополнительной переменной.
А как насчет сайтов с другими системами управления контентом?
API называется WordPress REST API, поскольку он является неотъемлемым компонентом программирования WordPress. По этой причине интерфейс доступен только в том случае, если запрашиваемые веб-страницы также настроены на WordPress.

При попытке запроса будет выдано сообщение об ошибке 404. Для таких сайтов существуют другие способы связаться с базой данных CMS.
Блокирование доступа к WordPress REST API
Не все согласны с тем, что другие могут просто считывать информацию с их сайта и даже использовать ее повторно. Чтобы предотвратить это, существует барьер, который можно активировать в бэкенде WordPress.

Плагин «Disable WP REST API» из репозитория WordPress должен быть активирован после установки — как и любой другой плагин — для того, чтобы остановить несанкционированный доступ. Кроме этого, больше никаких действий предпринимать не нужно.

Код состояния «401» (неавторизованный) означает, что сервер отклонил HTTP-запрос либо из-за недействительной, либо из-за отсутствия аутентификации. Однако, в отличие от «403», аутентификация возможна.
Многие веб-сайты защищены таким образом для предотвращения автоматизированной кражи контента. Спрашивать у оператора сайта разрешение на использование внешнего контента — это не только хорошие манеры, но и необходимость соблюдать авторские права. Чтобы протестировать собственный сайт, можно просто установить плагин в положение «отключено». После этого содержимое базы данных снова станет доступным. Данные в плагине не могут быть потеряны.