WordPress Snippet

ワードプレスをカスタマイズしよう

gallery キャプション付画像のカスタマイズ

キャプション付画像は、img_caption_shortcodeでカスタマイズできます。

add_filter( 'img_caption_shortcode', 'textdomain_change_caption', 10, 3 );

function textdomain_change_caption( $none, $att, $content ){
	var_dump($content);
	var_dump($att);
	$my_content= 'hello';
	return $my_content;
}

wp-includes/media.php@core file

/**
 * The Caption shortcode.
 *
 * 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'.
 *
 * @since 2.6.0
 *
 * @param array $attr Attributes attributed to the shortcode.
 * @param string $content Optional. Shortcode content.
 * @return string
 */
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] );
		}
	}

	// Allow plugins/themes to override the default caption template.
	$output= apply_filters('img_caption_shortcode', '', $attr, $content);
	if ( $output != '' )
		return $output;

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

	if ( 1 > (int) $width | | empty($caption) )
		return $content;

	if ( $id ) $id= 'id="' . esc_attr($id) . '" ';

	return '<div ' . $id . 'class="wp-caption ' . esc_attr($align) . '" style="width: ' . (10 + (int) $width) . 'px">'
	. do_shortcode( $content ) . '<p class="wp-caption-text">' . $caption . '</p></div>';
}

add_shortcode('gallery', 'gallery_shortcode');

[emulsion_relate_posts]