WordPress: Sortierbare Metabox-Felder, die Position nicht speichern

Ich bin auf ein Problem gestoßen, das mich auf die Probe gestellt hat: Nach dem Upgrade auf WP 3.6 speichern meine sortierbaren Metabox-Felder ihre Position nicht, wenn Sie sie neu anordnen. Unten ist mein Code:

PHP:

function save_box( $post_id ) { $post_type = get_post_type(); // verify nonce if ( ! isset( $_POST['custom_meta_box_nonce_field'] ) ) return $post_id; if ( ! ( in_array( $post_type, $this->page ) || wp_verify_nonce( $_POST['custom_meta_box_nonce_field'], 'custom_meta_box_nonce_action' ) ) ) return $post_id; // check autosave if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return $post_id; // check permissions if ( ! current_user_can( 'edit_page', $post_id ) ) return $post_id; // loop through fields and save the data foreach ( $this->fields as $field ) { if( $field['type'] == 'section' ) { $sanitizer = null; continue; } if( in_array( $field['type'], array( 'tax_select', 'tax_checkboxes' ) ) ) { // save taxonomies if ( isset( $_POST[$field['id']] ) ) { $term = $_POST[$field['id']]; wp_set_object_terms( $post_id, $term, $field['id'] ); } } else { // save the rest $old = get_post_meta( $post_id, $field['id'], $field['type'], true ); if ( isset( $_POST[$field['id']] ) ) $new = $_POST[$field['id']]; if ( isset( $new ) && $new != $old ) { $sanitizer = isset( $field['sanitizer'] ) ? $field['sanitizer'] : 'sanitize_text_field'; if ( is_array( $new ) ) $new = meta_box_array_map_r( 'meta_box_sanitize', $new, $sanitizer ); else $new = meta_box_sanitize( $new, $sanitizer ); update_post_meta( $post_id, $field['id'], $new ); } elseif ( isset( $new ) && '' == $new && $old ) { delete_post_meta( $post_id, $field['id'], $old ); } } } // end foreach } 

jQuery:

 $('.meta_box_repeatable tbody').sortable({ opacity: 0.6, revert: true, cursor: 'move', handle: '.hndle' }); // post_drop_sort $('.sort_list').sortable({ connectWith: '.sort_list', opacity: 0.6, revert: true, cursor: 'move', cancel: '.post_drop_sort_area_name', items: 'li:not(.post_drop_sort_area_name)', update: function(event, ui) { var result = $(this).sortable('toArray'); var thisID = $(this).attr('id'); $('.store-' + thisID).val(result) } }); $('.sort_list').disableSelection(); 

Was ich habe, ist eine Metabox, die eine wiederholbare Box enthält, in der wiederholbaren Box befindet sich eine Bild-Upload-Schaltfläche und eine Texteingabe. Alles funktioniert gut, ich kann mehr Wiederholungen hinzufügen und sortieren, aber wenn ich den Beitrag speichere, kehren die Wiederholungen zu ihrer ursprünglichen Position zurück.

Wenn jemand möchte, kann ich Ihnen Login-Daten geben, um die Live-Version zu sehen.

Jede Hilfe würde sehr geschätzt werden.

Solutions Collecting From Web of "WordPress: Sortierbare Metabox-Felder, die Position nicht speichern"

Normalerweise sollte es ausreichen, das postsbox Skript auf einer Seite postsbox auf der sortierbare Meta-Boxen stehen sollen.

Mach einfach folgendes:

 add_action( 'admin_enqueue_scripts', 'wpse112022_postbox_enqueue' ); function wpse112022_postbox_enqueue( $hook_suffix ) { // uncomment the next line to see what the $hook_suffix of your desired page is # var_dump( $hook_suffix ); if ( 'hook_suffix of desired page' !== $hook_suffix ) return; wp_enqueue_script( 'postbox' ); // If the last line didn't enqueue the script, then uncomment the following instead: /* $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; wp_enqueue_script( 'postbox', "/wp-admin/js/postbox{$suffix}.js", array( 'jquery-ui-sortable' ), false true ); */ }