向编辑器添加带标题的图像短代码

原型

image_add_caption( string $html, integer $id, string $caption, string $title, string $align, string $url, string $size, string $alt = '' )

参数

$html (string) (Required)

$id (integer) (Required)

$caption (string) (Required) 图片标题

$title (string) (Required) 图像标题属性

$align (string) (Required) 图像css对齐属性

$url (string) (Required) 图片src网址

$size (string) (Required) 图像大小(缩略图,中等,大,完整或添加add_image_size())

$alt (string) (Optional) 图像alt属性

返回值

(string)  

源文件

路径:wp-admin/includes/media.php

<?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 to 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("rn", "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( '/[ nt]*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 );
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/image_add_caption/