ОБЗОР
Весь процесс рендеринга контента от внешнего интерфейса до JavaScript или других языков программирования, связанных с интерфейсом, обеспечивается WordPress REST API, который дает нам возможность перенести упомянутый процесс внешнего интерфейса. Затем JavaScript предоставит нам возможность повысить интерактивность и ее производительность, что приведет к возникновению необходимости его использования.
В этом руководстве основное внимание уделяется созданию интерфейсной системы для приложения без нарушения использования WordPress для управление контентом с помощью WordPress REST API.
ТРЕБОВАНИЯ
- Блог WordPress.
- Веб-хостинг для размещения блога (рекомендую AwardSpace, это бесплатно).
- REST API v2 (плагин WordPress)
- JSON Web Token (JWT) Аутентификация (плагин Wordpress)
- Почтальон
ВЫДЕЛЯТЬ
- Создайте учетную запись на AwardSpace и ведите блог WordPress.
- Настройте блог WordPress (необязательно).
- Установите и настройте необходимые плагины.
- Получите токен jwt с помощью почтальона
- Отправка сообщений в формате JSON в блоге WordPress
- Получайте сообщения из блога.
СОЗДАНИЕ БЛОГА НА AWARDSPACE
- Создайте учетную запись на Awardspace и войдите в личный кабинет.
- На вкладках перейдите к «Hosting Tools», а затем откройте «Zacky Installer».
- Выберите платформу для создания сайтов (WordPress).
- Выберите свой дизайн и установленные плагины (необязательно).
- Настройте параметры своего веб-сайта, зарегистрируйте бесплатный домен
- Установите свой новый блог
- Войдите на страницу администратора вашего блога.
УСТАНОВИТЬ И АКТИВИРОВАТЬ WORDPRESS REST API (ВЕРСИЯ2)
- На панели управления WordPress перейдите в раздел «Плагины» и нажмите «Добавить».
- Найдите WordPress REST API (версия 2), созданный командой WP REST API.
- Установите и активируйте плагин.
УСТАНОВИТЕ И АКТИВИРУЙТЕ ПЛАГИН АУТЕНТИФИКАЦИИ JSON WEB TOKEN (JWT)
- Найдите «JWT Authentication for WP REST API» и установите плагин.
- Вернитесь на панель управления AwardSpace, откройте файловый менеджер или любую другую службу хостинга, которую вы выбрали, откройте каталог WordPress, найдите и откройте файл «.htaccess».
- В файл «.htaccess» добавьте следующий фрагмент кода;
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
4. Настройте Секретный ключ в файле «wp-config.php», вставив следующий код;
define(‘JWT_AUTH_SECRET_KEY’, <your-top-secret-key>); define(‘JWT_AUTH_CORS_ENABLE’, true);
5. Сохраните файл и активируйте плагин.
ПОЛУЧИТЬ ВЕБ-ТОКЕН JSON
Этот шаг объясняет, как получить веб-токен JSON с помощью Postman.
- Создайте нового пользователя на панели инструментов WordPress и назначьте ему роль «Автор».
- Откройте Postman и введите URL-адрес веб-сайта с конечной точкой ‘/ wp-json / jwt-auth / v1 / token’.
- Добавьте параметры для имени пользователя и пароля с соответствующими значениями.
URL-адрес должен выглядеть так
http://example.org/wp-json/jwt-auth/v1/token? имя пользователя = ???? пароль = ???? - Отправьте почтовый запрос, а затем получите ответ JSON с токеном и другими сведениями о пользователе.
ОТПРАВКА ПОСТОВ ИЗ ПРИЛОЖЕНИЯ В БЛОГ
Благодаря веб-токену JSON, полученному в последнем сеансе, теперь вы можете отправлять сообщения в блог WordPress с помощью HTTP-запроса AJAX. Есть много способов отправить данные, но я отправляю данные как объект JSON с помощью формы. Используя этот метод, мы возьмем пару значений в объекте JSON, что должно помочь нам передать их в запрос. Я создал простую форму для публикации данных со следующей разметкой.
HTML
<form name="post-form" id="post-form"> <label for="title">Title</label> <input type="text" name="title" id="title"> <label for="status">Status</label> <select name="status" id="status"> <option value="publish">Publish</option> <option value="draft">Draft</option> </select> <label for="content">Content</label> <textarea name="content" id="content"></textarea> <input type="submit" name="submit" value="Submit"> </form>
Приведенный выше код будет состоять из трех основных полей для содержания, статуса и заголовка. Затем мы отправим форму и получим фрагмент кода JavaScript, подобный этому:
JAVASCRIPT
var postForm = $( '#post-form' );
var jsonData = function( form ) {
var arrData = form.serializeArray(),
objData = {};
$.each( arrData, function( index, element ) {
objData[element.name] = element.value;
});
return JSON.stringify( objData );
};
postForm.on( 'submit', function( e ) {
e.preventDefault();
$.ajax({
url: 'http://example/wp-json/wp/v2/posts',
method: 'POST',
data: jsonData( postForm ),
crossDomain: true,
contentType: 'application/json',
beforeSend: function ( xhr ) {
xhr.setRequestHeader( 'Authorization', “Bearer YOUR Token' );
},
success: function( data ) {
console.log( data );
},
error: function( error ) {
console.log( error );
}
});
});
Маршрут / wp / v2 / posts будет тем, который получит запрос AJAX, который был отправлен после отправки предыдущего фрагмента кода. После отправки HTML-форма будет преобразована в формат JSON, который затем используется методом $ .ajax () и его свойством data. Используя свойство contentType, мы установим тип контента на application / json. Когда запрос отправляется по маршруту / wp / v2 / posts, создается новое сообщение, но не раньше, чем мы включаем заголовок авторизации, который используется методом проверки подлинности JWT, который мы рассмотрели ранее.
ПОЛУЧАЙТЕ ЗАПИСИ ИЗ БЛОГА В ПЕРЕДНЕЕ ПРИЛОЖЕНИЕ
У меня есть простой шаблон, показывающий, как отображать сообщения из блога WordPress во внешнем интерфейсе нашего приложения. Гораздо удобнее использовать механизмы шаблонов, но для простоты мы воспользуемся этим методом.
HTML
<div class="container"> <h1>Posts</h1> <div id="excerpt"></div> </div>
JAVASCRIPT
function callpost() {
var URL = newFunction();
$.getJSON(URL, function(data) {
console.log(data);
updateDOM(data);
});
function newFunction() {
return 'http://example.org/wp-json/wp/V2/posts';
}
};
callpost();
function updateDOM(data)
for(i = 0; i < data.length; i++){
var date = data[i].date;
var excerpt = data[i].excerpt.rendered;
$('#excerpt').append("<section class='posts'><h5>Date: " +date +"</h5><p>" + excerpt + "</p></section>");
};
};
РЕКОМЕНДАЦИИ
Если вы столкнулись с ошибкой Не удалось загрузить« http://example.org/wp-json/wp/V2/posts: На запрошенном ресурсе нет заголовка Access-Control-Allow-Origin . Следовательно, к источнику "null" доступ не разрешен. В ответе был код состояния HTTP 403 ”. Если вы хотите выполнить междоменный запрос, нужно сделать что-то другое. Учебник о том, как этого добиться, называется Использование CORS.
Самый простой способ - просто добавить расширение в Google Chrome, чтобы разрешить доступ с помощью CORS. (Https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en-US)
Просто активируйте это расширение всякий раз, когда вы хотите разрешить доступ без запроса заголовка ‘access-control-allow-origin’.
Or
В Windows вставьте эту команду в окно Выполнить.
chrome.exe - user-data-dir = "C: / Chrome dev session" - disable-web-security
откроется новый браузер chrome, который не разрешает доступ к запросу заголовка ‘access-control-allow-origin’ без запроса.