I just added a div to your function see comment in code:
<?php
add_filter( 'post_gallery', 'my_post_gallery', 10, 2 );
function my_post_gallery( $output, $attr )
{
global $post, $wp_locale;
static $instance = 0;
$instance ++;
if ( isset( $attr['orderby'] ) )
{
$attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
if( !$attr['orderby'] )
{
unset( $attr['orderby'] );
}
}
extract( shortcode_atts( array(
'order' => 'ASC',
'orderby' => 'menu_order ID',
'id' => $post->ID,
'itemtag' => 'figure',
'icontag' => 'dt',
'captiontag' => 'figcaption',
'columns' => 3,
'size' => 'thumbnail',
'attachment' => 'large',
'include' => '',
'exclude' => ''
), $attr ) );
$id = intval( $id );
if ( 'RAND' == $order )
{
$orderby = 'none';
}
if ( !empty( $include ) )
{
$include = preg_replace( '/[^0-9,]+/', '', $include );
$_attachments = get_posts( array(
'include' => $include,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => $order,
'orderby' => $orderby
));
$attachments = array();
foreach( $_attachments as $key => $val )
{
$attachments[ $val->ID ] = $_attachments[ $key ];
}
}
elseif ( !empty( $exclude ) )
{
$exclude = preg_replace( '/[^0-9,]+/', '', $exclude );
$attachments = get_children( array(
'post_parent' => $id,
'exclude' => $exclude,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => $order,
'orderby' => $orderby
));
}
else
{
$attachments = get_children( array(
'post_parent' => $id,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => $order,
'orderby' => $orderby
));
}
if( empty( $attachments ) )
{
return;
}
if( is_feed() )
{
$output="";
foreach( $attachments as $att_id => $attachment )
{
$output .= wp_get_attachment_link($att_id, $size, true) . "\n";
}
return $output;
}
$itemtag = tag_escape( $itemtag );
$captiontag = tag_escape( $captiontag );
$columns = intval( $columns );
$itemwidth = $columns > 0 ? floor( 100 / $columns ) : 100;
$float = is_rtl() ? 'right' : 'left';
$selector = "gallery-{$instance}";
$output = apply_filters( 'gallery_style', '' );
$i = 0;
// The div
$output .= '<div id="sort">';
foreach( $attachments as $id => $attachment )
{
$link = isset( $attr['link'] ) && 'file' == $attr['link'] ? wp_get_attachment_link( $id, $size, false, false ) : wp_get_attachment_link( $id, $size, true, false );
$output .= "<{$itemtag} class="item">";
$output .= "$link";
if ( $captiontag && trim( $attachment->post_excerpt ) )
{
$output .= "<{$captiontag}>" . wptexturize( $attachment->post_excerpt ) . "</{$captiontag}>";
}
$output .= "</{$itemtag}>";
if ( $columns > 0 && ++$i % $columns == 0 )
{
$output .= '';
}
}
$output .= "<br>\n";
// End div
$output .= '</div>';
return $output;
}