diff --git a/wp-includes/media.php b/wp-includes/media.php index e720879c1..911f4e913 100644 --- a/wp-includes/media.php +++ b/wp-includes/media.php @@ -661,11 +661,27 @@ function gallery_shortcode($attr) { 'icontag' => 'dt', 'captiontag' => 'dd', 'columns' => 3, - 'size' => 'thumbnail' + 'size' => 'thumbnail', + 'include' => '', + 'exclude' => '' ), $attr)); $id = intval($id); - $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); + if ( 'RAND' == $order ) + $orderby = 'none'; + + if ( !empty($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) ) { + $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 '';