i did it already, with some customization. you may use this as a start:
$loop = new WP_Query($args);
$z=0; // z?hler für loops = betreffende bilder
$nr=0; //zielarray
while ( $loop->have_posts() ) :
$loop->the_post();
if(is_array($name_ext_r)): // wenn nach dateinamensendungen gesucht werden soll = galerie oben
$bildurl_ende=substr(get_the_guid(),-6,-4);
for($x=0;$x<count($name_ext_r);$x++) {
if($name_ext_r[$x]==$bildurl_ende) { // ende bildurl = suchstring?
$output_r[$nr]['image'] = wp_get_attachment_image('', $size, false);
$output_r[$nr]['url'] = wp_get_attachment_url();
$output_r[$nr]['title'] = get_the_title();
$output_r[$nr]['bildurl_ende'] = $bildurl_ende;
$nr++;
}
}
else : //oder einfach alle bilder ausgeben = galerie seite
$output_r[$z]['image'] = wp_get_attachment_image('', $size, false);
$output_r[$z]['url'] = wp_get_attachment_url();
$output_r[$z]['title'] = get_the_title();
endif;
$z++;
endwhile;
if(is_array($output_r)): //gibts was zu sortieren?
if(!is_array($name_ext_r)) : // galerien links nach alphabet sortieren
foreach ($output_r as $nr => $inhalt)$url[$nr] = strtolower( $inhalt['url'] );
array_multisort($url, SORT_ASC, $output_r);
else: // galerien oben nach vorgegebener reihenfolge sortieren
for($y=0;$y<count($name_ext_r);$y++) {
for($t=0;$t<count($output_r);$t++) {
if($name_ext_r[$y]==$output_r[$t]['bildurl_ende'])$output_r_new[]=$output_r[$t];
}
}
$output_r=$output_r_new;
endif;
$i=1;
foreach($output_r as $part) {
if(!is_array($name_ext_r)){if($i%3==0)$extraclass=' last';} //klassen für seitengalerie generieren
else $extraclass="imgnr".$i; //klassen für obere galerie generieren
$output .= '<a class="'.$class.$extraclass.'" title="'.$part['title'].'" href="'.$part['url'].'">'.$part['image'].'</a>';
$i++;
unset($extraclass);
}
unset ($i);
endif;
wp_reset_query();
return $output;
}