添加微信号:木瓜园

WordPress [caption] 多出来10px的问题

最近发现一个问题,在wordpress中对图片使用时,例如:

<img src=”example.com/image.jpg” alt=”This is a caption” title=”XYZ” width=”100″ height=”100″ /> This is a caption

那么,在浏览器中就会看到,实际的宽度会被额外加了10px。
google的时候还真的发现有这样的问题,下面是关于多出来10px的讨论链接:http://wordpress.org/support/topic/10px-added-to-width-in-image-captions
从讨论贴的日期可以看到,这个问题已经出现很久了,为什么还没有被开发团队解决?

解决办法

在你的functions.php中加入下面的代码:

add_filter( 'img_caption_shortcode', 'cleaner_caption', 10, 3 );
function cleaner_caption( $output, $attr, $content ) {
/* We’re not worried abut captions in feeds, so just return the output here. */
if ( is_feed() )
return $output;
/* Set up the default arguments. */
$defaults = array(
‘id’ => ”,
‘align’ => ‘alignnone’,
‘width’ => ”,
‘caption’ => ”
);
/* Merge the defaults with user input. */
$attr = shortcode_atts( $defaults, $attr );
/* If the width is less than 1 or there is no caption, return the content wrapped between the < tags. */
if ( 1 > $attr['width'] || empty( $attr['caption'] ) )
return $content;
/* Set up the attributes for the caption <div>. */
$attributes = ( !empty( $attr['id'] ) ? ‘ id=”‘ . esc_attr( $attr['id'] ) . ‘”‘ : ” );
$attributes .= ”;
$attributes .= ‘ style=”width: ‘ . esc_attr( $attr['width'] ) . ‘px”‘;
/* Open the caption <div>. */
$output = ‘<div’ . $attributes .’>';
/* Allow shortcodes for the content the caption was created for. */
$output .= do_shortcode( $content );
/* Append the caption text. */
$output .= ‘<p>’ . $attr['caption'] . ‘</p>';
/* Close the caption </div>. */
$output .= ‘</div>';
/* Return the formatted, clean caption. */
return $output;
}

以上代码出自:这里,感谢作者!

05.13.2013

发表评论

电子邮件地址不会被公开。 必填项已用*标注