You simply need to pass $attachment_id
instead of get_post_thumbnail_id()
in echo get_post(get_post_thumbnail_id())->post_excerpt;
with wptexturize
to prevent your markup from breaking other things.
Update: As @birgire suggested I think it is better to use get_post_field()
instead of directly accessing post property.
Updated code:-
function soth_output_gallery_file_list( $file_list_meta_key, $img_size ) {
// Get the list of files
$files = get_post_meta( get_the_ID(), $file_list_meta_key, 1 );
echo '<div class="entry-content row">';
foreach ( (array) $files as $attachment_id => $attachment_url ) {
echo '<div class="small-6 medium-4 column text-center">';
echo wp_get_attachment_image( $attachment_id, $img_size );
echo '<p class="wp-caption-text">';
//Get post excerpt by attachment ID
echo wptexturize( get_post_field( 'post_excerpt', $attachment_id ) );
echo '</p></div>';
}
echo '</div>';
}