Gallery shortcode menu order fix no longer working on WordPress 4.0

What I found to work for me was to remove the action within the foreach ending with the following code

function pmc_gallery_menu_order_fix($id) {
    $regex_pattern = get_shortcode_regex();
    preg_match ("https://wordpress.stackexchange.com/".$regex_pattern.'/s', stripslashes($_POST['content']), $regex_matches);
    if ($regex_matches[2] == 'gallery') :
        $attribureStr = str_replace (" ", "&", trim ($regex_matches[3]));
        $attribureStr = str_replace ('"', '', $attribureStr);
        $attributes = wp_parse_args ($attribureStr);
    endif;
    $ids = explode(',', $attributes[ids]);
    $images = get_posts( array(
    'post_parent' => $post->ID,
    'numberposts' => '-1',
    'post_status' => 'inherit',
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'orderby' => 'menu_order ID',
    'order' => 'ASC'
) );
if ( empty($images) ) {
    // no attachments here
} else {
    foreach ( $images as $attachment_id => $attachment ) {
        if (in_array($attachment->ID, $ids)) {
            $update_post = array();
            $update_post['ID'] = $attachment->ID;
            $update_post['menu_order'] = array_search($attachment->ID, $ids);
  //this remove actions breaks the loop
            remove_action('pre_post_update', 'pmc_gallery_menu_order_fix');
            wp_update_post( $update_post );
        };
    }
}

}

Leave a Comment