Skip to content

Instantly share code, notes, and snippets.

@vickybiswas
Created December 5, 2012 01:14
Show Gist options
  • Save vickybiswas/4211031 to your computer and use it in GitHub Desktop.
Save vickybiswas/4211031 to your computer and use it in GitHub Desktop.
Fix for broken menu_order
function pmc_gallery_menu_order_fix($id) {
$regex_pattern = get_shortcode_regex();
preg_match ('/'.$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);
wp_update_post( $update_post );
};
}
}
}
add_action('pre_post_update', 'pmc_gallery_menu_order_fix');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment