Я использую форму с полем загрузки / ввода изображений, которое позволяет аутентифицированным пользователям создавать и публиковать сообщения через 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;
});