函数原型
image_add_caption( string $html, int $id, string $caption, string $title, string $align, string $url, string $size, string $alt = ” ): string
函数描述
Adds image shortcode with caption to editor.
是否弃用
未弃用
函数参数
-
$html
string
Required - The image HTML markup to send.
-
$id
int
Required - Image attachment ID.
-
$caption
string
Required - Image caption.
-
$title
string
Required - Image title attribute (not used).
-
$align
string
Required - Image CSS alignment property.
-
$url
string
Required - Image source URL (not used).
-
$size
string
Required - Image size (not used).
-
$alt
string
Optional - Image
altattribute (not used).Default:
''
函数返回值
string The image HTML markup with caption shortcode.
函数位置
File: wp-admin/includes/media.php.
函数源码
function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $alt = '' ) {
/**
* Filters the caption text.
*
* Note: If the caption text is empty, the caption shortcode will not be appended
* to the image HTML when inserted into the editor.
*
* Passing an empty value also prevents the {@see 'image_add_caption_shortcode'}
* Filters from being evaluated at the end of image_add_caption().
*
* @since 4.1.0
*
* @param string $caption The original caption text.
* @param int $id The attachment ID.
*/
$caption = apply_filters( 'image_add_caption_text', $caption, $id );
/**
* Filters whether to disable captions.
*
* Prevents image captions from being appended to image HTML when inserted into the editor.
*
* @since 2.6.0
*
* @param bool $bool Whether to disable appending captions. Returning true from the filter
* will disable captions. Default empty string.
*/
if ( empty( $caption ) || apply_filters( 'disable_captions', '' ) ) {
return $html;
}
$id = ( 0 < (int) $id ) ? 'attachment_' . $id : '';
if ( ! preg_match( '/width=["\']([0-9]+)/', $html, $matches ) ) {
return $html;
}
$width = $matches[1];
$caption = str_replace( array( "\r\n", "\r" ), "\n", $caption );
$caption = preg_replace_callback( '/<[a-zA-Z0-9]+(?: [^<>]+>)*/', '_cleanup_image_add_caption', $caption );
// Convert any remaining line breaks to <br />.
$caption = preg_replace( '/[ \n\t]*\n[ \t]*/', '<br />', $caption );
$html = preg_replace( '/(class=["\'][^\'"]*)align(none|left|right|center)\s?/', '$1', $html );
if ( empty( $align ) ) {
$align = 'none';
}
$shcode = '' . $html . ' ' . $caption . '';
/**
* Filters the image HTML markup including the caption shortcode.
*
* @since 2.6.0
*
* @param string $shcode The image HTML markup with caption shortcode.
* @param string $html The image HTML markup.
*/
return apply_filters( 'image_add_caption_shortcode', $shcode, $html );
}
源码链接
变更日志
| Version | Description |
|---|---|
| 2.6.0 | Introduced. |

