Я пытаюсь создать функцию списка todo, в которой пользователь, зарегистрированный в системе, может сортировать сообщение (я создам для этого CPT, но пока что я тестирую его с помощью родной записи WP) в интерфейсе с помощью jQuery UI Sort и обновить заказ после AJAX.
У меня есть этот файл script.js
(Функция ($) { itemList = $ ('# sortable'); itemList.sortable ({ update: function (event, ui) { console.log ( 'загрузка ...'); opts = { url: ajaxurl, тип: «POST», async: true, cache: false, dataType: 'json', данные:{ action: 'pa_save_todo_sort', order: itemList.sortable ('toArray') }, success: function (response) { if (true === response.success) { console.log («успех ...» + ответ); } else { console.log ( 'ошибка ..'); } вернуть; }, error: function (xhr, textStatus, e) { console.log ('error:' + e); вернуть; } }; $ .ajax (ОПТС); console.log (opts.data.order); } }); } (JQuery));
и этот PHP-файл myfunction.php , однако, похоже, что menu_order сообщений не сохраняется.
add_action ('wp_enqueue_scripts', 'pa_ajax_script'); function pa_save_todo_reorder () { $ order = $ _POST ['order']; $ counter = 0; foreach ($ order as $ item_id) { $ post = array ( 'ID' => $ item_id, 'menu_order' => $ counter, ); wp_update_post ($ post, true); $ Счетчика ++; } wp_send_json_success ('Post Saved.'); } add_action ('wp_ajax_pa_save_todo_sort', 'pa_save_todo_reorder'); add_action ('wp_ajax_nopriv_pa_save_todo_sort', 'pa_save_todo_reorder');