我不久前尝试过的东西-纯粹是实验性的,没有经过广泛测试-这将把缩略图和字幕包装到一个类似于wp字幕图像的div中:(这个过滤函数需要添加到主题的functions.php中)
// 27/01/2012 alchymyth
// show thumbnail with caption, if it is entered, wrapped with <div class="wp-caption thumb-caption"> ;
// show just the thumbnail otherwise
add_filter(\'post_thumbnail_html\',\'add_post_thumbnail_caption\',10,5);
function add_post_thumbnail_caption($html, $post_id, $post_thumbnail_id, $size, $attr) {
if( $html == \'\' ) { return $html;
} else {
$out = \'\';
$thumbnail_image = get_posts(array(\'p\' => $post_thumbnail_id, \'post_type\' => \'attachment\'));
if ($thumbnail_image && isset($thumbnail_image[0])) {
$image = wp_get_attachment_image_src($post_thumbnail_id, $size);
$t_width = $image[1] +0; // +0 here for no extra padding, needs to be considered in writing css - the default image caption uses +10;
$class = $attr[\'class\'];
if($thumbnail_image[0]->post_excerpt) $out .= \'<div class="wp-caption thumb-caption \'.$class.\'" style="width:\'.$t_width.\'px; ">\';
$out .= $html;
if($thumbnail_image[0]->post_excerpt) $out .= \'<p class="wp-caption-text">\'.$thumbnail_image[0]->post_excerpt.\'</p></div>\';
}
return $out;
}
/*css classes for this:
.wp-caption.thumb-caption { }
.wp-caption.thumb-caption img { }
.wp-caption.thumb-caption .wp-caption-text { }
*/
}
输出示例:
<div class="wp-caption thumb-caption " style="width:165px; "><img width="165" height="150" src="http://localhost/wordpress/wp-content/uploads/2010/05/birthday_cake-180x163.jpg" class="attachment-580x150 wp-post-image" alt="happy birthday" title="birthday_cake" /><p class="wp-caption-text">happy birthday</p></div>