img_caption_shortcode() - WordPress 函数参考中文文档

返回介绍

img_caption_shortcode()

发布于 2017-09-11 字数5547 浏览 1097 评论 0

img_caption_shortcode( array $attr,  string $content = null )

Builds the Caption shortcode output.


描述

Allows a plugin to replace the content that would otherwise be returned. The filter is ‘img_caption_shortcode’ and passes an empty string, the attr parameter and the content parameter values.

The supported attributes for the shortcode are ‘id’, ‘align’, ‘width’, and ‘caption’.


参数

$attr

(array)
(Required)
Attributes of the caption shortcode.

  • ‘id’
    (string) ID of the div element for the caption.
  • ‘align’
    (string) Class name that aligns the caption. Default ‘alignnone’. Accepts ‘alignleft’, ‘aligncenter’, alignright’, ‘alignnone’.
  • ‘width’
    (int) The width of the caption, in pixels.
  • ‘caption’
    (string) The caption text.
  • ‘class’
    (string) Additional class name(s) added to the caption container.
$content

(string)
(Optional)
Shortcode content.

Default value: null


返回值

(string) HTML content to display the caption.


源代码

File: wp-includes/media.php

function img_caption_shortcode( $attr, $content = null ) {
	// New-style shortcode with the caption inside the shortcode with the link and image tags.
	if ( ! isset( $attr['caption'] ) ) {
		if ( preg_match( '#((?:<a [^>]+>\s*)?<img [^>]+>(?:\s*</a>)?)(.*)#is', $content, $matches ) ) {
			$content = $matches[1];
			$attr['caption'] = trim( $matches[2] );
		}
	} elseif ( strpos( $attr['caption'], '<' ) !== false ) {
		$attr['caption'] = wp_kses( $attr['caption'], 'post' );
	}

	/**
	 * Filters the default caption shortcode output.
	 *
	 * If the filtered output isn't empty, it will be used instead of generating
	 * the default caption template.
	 *
	 * @since 2.6.0
	 *
	 * @see img_caption_shortcode()
	 *
	 * @param string $output  The caption output. Default empty.
	 * @param array  $attr    Attributes of the caption shortcode.
	 * @param string $content The image element, possibly wrapped in a hyperlink.
	 */
	$output = apply_filters( 'img_caption_shortcode', '', $attr, $content );
	if ( $output != '' )
		return $output;

	$atts = shortcode_atts( array(
		'id'	  => '',
		'align'	  => 'alignnone',
		'width'	  => '',
		'caption' => '',
		'class'   => '',
	), $attr, 'caption' );

	$atts['width'] = (int) $atts['width'];
	if ( $atts['width'] < 1 || empty( $atts['caption'] ) )
		return $content;

	if ( ! empty( $atts['id'] ) )
		$atts['id'] = 'id="' . esc_attr( sanitize_html_class( $atts['id'] ) ) . '" ';

	$class = trim( 'wp-caption ' . $atts['align'] . ' ' . $atts['class'] );

	$html5 = current_theme_supports( 'html5', 'caption' );
	// HTML5 captions never added the extra 10px to the image width
	$width = $html5 ? $atts['width'] : ( 10 + $atts['width'] );

	/**
	 * Filters the width of an image's caption.
	 *
	 * By default, the caption is 10 pixels greater than the width of the image,
	 * to prevent post content from running up against a floated image.
	 *
	 * @since 3.7.0
	 *
	 * @see img_caption_shortcode()
	 *
	 * @param int    $width    Width of the caption in pixels. To remove this inline style,
	 *                         return zero.
	 * @param array  $atts     Attributes of the caption shortcode.
	 * @param string $content  The image element, possibly wrapped in a hyperlink.
	 */
	$caption_width = apply_filters( 'img_caption_shortcode_width', $width, $atts, $content );

	$style = '';
	if ( $caption_width ) {
		$style = 'style="width: ' . (int) $caption_width . 'px" ';
	}

	if ( $html5 ) {
		$html = '<figure ' . $atts['id'] . $style . 'class="' . esc_attr( $class ) . '">'
		. do_shortcode( $content ) . '<figcaption class="wp-caption-text">' . $atts['caption'] . '</figcaption></figure>';
	} else {
		$html = '<div ' . $atts['id'] . $style . 'class="' . esc_attr( $class ) . '">'
		. do_shortcode( $content ) . '<p class="wp-caption-text">' . $atts['caption'] . '</p></div>';
	}

	return $html;
}

更新日志

Version 描述
2.6.0 Introduced.

相关函数

Uses

  • wp-includes/theme.php:
    current_theme_supports()
  • wp-includes/formatting.php:
    esc_attr()
  • wp-includes/formatting.php:
    sanitize_html_class()
  • wp-includes/kses.php:
    wp_kses()
  • wp-includes/shortcodes.php:
    shortcode_atts()
  • wp-includes/shortcodes.php:
    do_shortcode()
  • wp-includes/plugin.php:
    apply_filters()
  • wp-includes/media.php:
    img_caption_shortcode_width
  • wp-includes/media.php:
    img_caption_shortcode
  • Show 4 more uses
    Hide more uses


Used By

  • wp-includes/widgets/class-wp-widget-media-image.php:
    WP_Widget_Media_Image::render_media()

User Contributed Notes

上一篇:image_size_input_fields()

下一篇:includes_url()

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!