基本上img_caption_shortcode
过滤器允许您完全替换默认图像标题。如果要这样做,需要让WP将过滤器的所有参数传递给回调函数。
<?php
add_filter(\'img_caption_shortcode\', \'wpse81532_caption\', 10, 3 /* three args */);
然后回调将需要处理所有渲染。您可以复制WP的代码,并对其进行修改以满足您的需要。WordPress已经负责从图像HTML中提取标题本身,因此您无需担心这一点。
<?php
function wpse81532_caption($na, $atts, $content)
{
extract(shortcode_atts(array(
\'id\' => \'\',
\'align\' => \'alignnone\',
\'width\' => \'\',
\'caption\' => \'\'
), $atts));
if (1 > (int) $width || empty($caption)) {
return $content;
}
// add the data attribute
$res = str_replace(\'<img\', \'<img data-caption="\' . esc_attr($caption) . \'"\', $content);
// the next bit is more tricky: we need to append our align class to the
// already exists classes on the image.
$class = \'class=\';
$cls_pos = stripos($res, $class);
if ($cls_pos === false) {
$res = str_replace(\'<img\', \'<img class="\' . esc_attr($align) . \'"\', $res);
} else {
$res = substr_replace($res, esc_attr($align) . \' \', $cls_pos + strlen($class) + 1, 0);
}
return $res;
}
这是上面的
as a plugin.