WordPress.org

Make WordPress Core

Ticket #22758: menu_order.patch

File menu_order.patch, 1.4 KB (added by vickybiswas, 8 years ago)

Patch from Menu Order

  • wp-includes/post.php

     
    29412941
    29422942        wp_transition_post_status($data['post_status'], $previous_status, $post);
    29432943
     2944        // Set menu_order of attached images in Gallery
     2945        $regex_pattern = get_shortcode_regex();
     2946        preg_match ('/'.$regex_pattern.'/s', stripslashes($data['post_content']), $regex_matches);
     2947        if ( $regex_matches ) {
     2948                if ($regex_matches[2] == 'gallery') {
     2949                        $attribure_str = str_replace(" ", "&", trim ($regex_matches[3]));
     2950                        $attribure_str = str_replace('"', '', $attribure_str);
     2951                        $attributes = wp_parse_args($attribure_str);
     2952                }
     2953                $ids = explode(',', $attributes[ids]);
     2954                $images = get_posts( array(
     2955                        'post_parent' => $post_ID,
     2956                        'numberposts' => '-1',
     2957                        'post_status' => 'inherit',
     2958                        'post_type' => 'attachment',
     2959                        'post_mime_type' => 'image',
     2960                        'orderby' => 'menu_order ID',
     2961                        'order' => 'ASC'
     2962                ) );
     2963                if ( $images ) {
     2964                        foreach ( $images as $attachment_id => $attachment ) {
     2965                                if (in_array($attachment->ID, $ids)) {
     2966                                        $update_post = array();
     2967                                        $update_post['ID'] = $attachment->ID;
     2968                                        $update_post['menu_order'] = array_search($attachment->ID, $ids);
     2969                                        wp_update_post( $update_post );
     2970                                };
     2971                        }
     2972                }
     2973        }
     2974
    29442975        if ( $update ) {
    29452976                do_action('edit_post', $post_ID, $post);
    29462977                $post_after = get_post($post_ID);