Wordpress REST API: Как создать сообщение и прикрепить к нему понравившееся изображение после его создания? - PullRequest
0 голосов
/ 05 марта 2019

Я использую форму с полем загрузки / ввода изображений, которое позволяет аутентифицированным пользователям создавать и публиковать сообщения через WP API.У меня работает функция создания постов, однако я застрял в добавлении избранной части изображения.

Я знаю, что для загрузки избранной картинки и ее назначения посту сначала необходимо создать пост..

Вот код, который, я думаю, будет работать, но не уверен, какие методы лучше всего запрограммировать для достижения успеха и желаемого результата.Любая помощь очень ценится:

Желаемый результат

  • Создать сообщение из отправленной формы с файлом img
  • Переменная Недавно созданный идентификатор сообщения
  • Переменная img file
  • Создание новой медиапублики, которая прикрепляется к только что созданному идентификатору поста (для установки в качестве избранного изображения)
  • Отображение предупреждения об успешном завершении

Мой код до сих пор срабатывает при отправке с

           // trigger when post form is submitted
$(document).on('submit', '#post_form', function(){
  var jwt = getCookie('jwt');
    // get form data
    var post_form=$(this);
    var form_data=JSON.stringify(post_form.serializeObject());


   // submit form data to api to create post
$.ajaxSetup({

    contentType : 'application/json',
    data : form_data,
     beforeSend: function (xhr) {
    xhr.setRequestHeader('Authorization',"Bearer"+ jwt);
};
    $.post("https://my-domain.here/wp-json/wp/v2/customendpoint").then(function(result) {
    $(data).each(function(index, value) {
      var postid = value.id;
     }

    // What goes here to grab postid?
   // How do I assign variable to the file from the submitted form ??
   // And can/how should I perform another POST to media endpoint with posid to assign feature image after post creation is complete? 


            $.ajaxSetup({

        contentType : 'application/json',
        data : form_data,
        beforeSend: function (xhr) {
    xhr.setRequestHeader('Authorization',"Bearer"+ jwt);
};
    $.post("http://my-domain.here/wp-json/wp/v2/media").done(function(result) {

//something here to show success

});
});

    return false;
});
...