Post Thumbnails: Add helper functions for attachment captions.

This adds three new functions for getting/displaying attachment captions:

* `wp_get_attachment_caption` - Retrieves a caption for a specific attachment.
* `get_the_post_thumbnail_caption()` - Returns the post thumbnail caption.
* `the_post_thumbnail_caption()` - Displays the post thumbnail caption.

These are helpful for displaying a caption associated with an image directly
in a template, rather than using the caption shortcode.

This also introduces two new filters:

* `wp_get_attachment_caption` - Filters the value of `wp_get_attachment_caption()`.
* `the_post_thumbnail_caption` - Filters the display of the post thumbnail caption.

`the_post_thumbnail_caption()` is automatically filtered by `wptexturize()`,
`convert_smilies()`, and `convert_chars()` in `wp-includes/default-filters.php`.

Props flixos90, joemcgill.
Fixes #12235.

git-svn-id: https://develop.svn.wordpress.org/trunk@37915 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Joe McGill
2016-06-29 17:28:00 +00:00
parent 206380180e
commit 0b4798b2bc
5 changed files with 167 additions and 0 deletions

View File

@@ -4936,6 +4936,37 @@ function wp_get_attachment_url( $post_id = 0 ) {
return $url;
}
/**
* Retrieves the caption for an attachment.
*
* @since 4.6.0
*
* @param int $post_id Optional. Attachment ID. Default 0.
* @return string|false False on failure. Attachment caption on success.
*/
function wp_get_attachment_caption( $post_id = 0 ) {
$post_id = (int) $post_id;
if ( ! $post = get_post( $post_id ) ) {
return false;
}
if ( 'attachment' !== $post->post_type ) {
return false;
}
$caption = $post->post_excerpt;
/**
* Filters the attachment caption.
*
* @since 4.6.0
*
* @param string $caption Caption for the given attachment.
* @param int $post_id Attachment ID.
*/
return apply_filters( 'wp_get_attachment_caption', $caption, $post->ID );
}
/**
* Retrieve thumbnail for an attachment.
*