PHP code to call image Caption, Alternative Text, and Decription?

WordPress stores image (attachment) data as follows:

  • Description: post_content field
  • Caption: post_excerpt field
  • Alt: _wp_attachment_image_alt meta value

And in code, that translates to:

// Description
echo $post->post_content; // Raw
the_content();

// Caption (description as fallback)
the_excerpt();

// Caption (explicitly)
echo $post->post_excerpt; // Raw
if ( has_excerpt() ) {
    the_excerpt();
}

// Alt
echo get_post_meta( $post->ID, '_wp_attachment_image_alt', true );