Как добавить сообщение пользовательского типа в другой экран редактирования сообщения пользовательского типа с помощью AJAX?
У меня есть два пользовательских типа записей: CD и трек. У каждого из них есть некоторые метаданные, связанные с ними.
Что я пытаюсь сделать, так это добавить записи треков в запись на компакт-диске, когда запись на компакт-диске редактируется. На странице редактирования компакт-диска у меня есть ссылка "Добавить трек". При нажатии на нее я хотел бы, чтобы под ссылкой появилась "Новая форма трека", в которой будет запрашиваться информация о треке (пользовательский тип записи), а также все метаданные, которые необходимо указать для трека - как если бы "Добавить трек" ссылка была нажата в левом меню WP. Надеюсь, это имеет смысл.Компакт-диск
Мои типы пользовательских записей компакт-дисков и дорожек зарегистрированы следующим образом: http://wordpress.pastebin.com/Y6aagTVs
На странице редактирования компакт-диска у меня есть следующая ссылка <a class="addTrack" href="">Add Track</a>
Мне не хватает AJAX и функции, которая будет обрабатывать добавление "Новой формы трека". Вот что у меня есть до сих пор в функции AJAX:
// Add Tracks
$("a.addTrack").click(function () {
opts = {
url: ajaxurl, // ajaxurl is defined by WordPress and points to /wp-admin/admin-ajax.php
type: 'POST',
async: true,
cache: false,
dataType: 'json',
data:{
action: 'track_add', // Tell WordPress how to handle this ajax request
},
success: function(response) {
return false;
},
error: function(xhr,textStatus,e) { // This can be expanded to provide more information
alert("There was an error adding a track.");
return false;
}
};
$.ajax(opts);
});
И функция, которая будет обрабатывать вставку "Новой формы дорожки" является
// Add Tracks
add_action('wp_ajax_track_add', 'my_ajax_admin_add_track');
function my_ajax_admin_add_track() {
}
Я не знаю, как продолжить о функциях AJAX и my_ajax_admin_add_track(). Буду очень признателен за любую помощь и советы!!!
Большое спасибо, Даша
1 answers
Для вашей функции my_ajax_admin_add_track() возьмите данные поля формы из массива $_POST, заполните необходимые данные в массиве, чтобы вызвать функцию wp_insert_post(), затем вызовите функцию wp_insert_post(), передав ей данные post. В случае успеха он должен вернуть новый идентификационный номер поста.