image_add_caption() – Adds image shortcode with caption to editor.

You appear to be a bot. Output may be restricted

Description

Adds image shortcode with caption to editor.

Usage

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

Parameters

$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 alt attribute (not used).

Returns

string The image HTML markup with caption shortcode.

Source

File name: wordpress/wp-admin/includes/media.php
Lines:

1 to 63 of 63
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 );
}
 

 View on GitHub View on Trac