First, you'll need to drop the following code in your functions.php file:
function the_post_thumbnail_caption() {
global $post;
$thumbnail_id = get_post_thumbnail_id($post->ID);
$thumbnail_image = get_posts(array('p' => $thumbnail_id, 'post_type' => 'attachment'));
if ($thumbnail_image && isset($thumbnail_image[0])) {
echo '<span>'.$thumbnail_image[0]->post_excerpt.'</span>';
}
}
Paste it right before the closing PHP tag in that file, if there isn't a closing PHP tag then make sure there's no empty lines below the code you paste as that can cause problems.
Then, where you'd like the caption to be displayed, you'll need to call it with this:
<?php the_post_thumbnail_caption(); ?>
If you're unsure where to put the call in your template files, you'll need to find where <?php the_post_thumbnail(); ?>
is being called. Just look for that line in your template file, and place the function call near it, where ever you'd like the caption to be displayed at. The function wraps the caption in a span tag automatically so you can target it with CSS, but you can also wrap the function call in any tag you'd like to.
So for example, if your template file is calling the featured image with this or something very similiar:
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail();
} ?>
You'd want to add the caption call to it like this:
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail();
} ?>
<?php the_post_thumbnail_caption(); ?>
Let me know if you need any other clarification.