1. Зачем через `has_shortcode();`, можно ведь по-другому...
2. Немного модифицированное предложение
@ZetRider:
if ( get_post_gallery() ) :
$gallery = get_post_gallery( get_the_ID(), false );
// array of ids;
$ids = explode(',', $gallery['ids']);
// array of urls;
$images = $gallery['src'];
$i = 0;
foreach( $images as $image ) {
$title = get_the_title($ids[$i]);
// тут свой формат вывода
echo '<img src="'.$image.'"><span>'.$title.'</span><br>';
$i++;
}
endif;
Но, функция `get_the_title();` дает нам только 1, и не самое лучшее поле. Имея массив IDшек (а это айдишки attachment'ов) можно воспользоваться одной из функций именно аттачментов - там вернется больше данных. Например, можно заюзать `wp_get_attachment_image()`, `wp get attachment metadata()`.