您好,我无法将缩略图显示为图片的实际尺寸。
这是我的代码:
<div class="property_photo">
<?php if (has_post_thumbnail($property->ID)){
echo get_the_post_thumbnail(
$property->ID,
array(300,220),
array('class' => 'post_thumbnail')
);
}
?>
</div>
CSS:
.property_photo {
float:left;
max-width:300px;
min-height:220px;
}
的functions.php:
add_theme_support('post-thumbnails'); // ENABLES POST THUMBNAILS
add_image_size( 'post-thumbnails', 300, 220, true );
add_image_size( 'bones-thumb-600', 600, 150, true );
add_image_size( 'bones-thumb-300', 300, 220, true );
它显示的是正确的宽度,但没有显示正确的高度。
提前致谢
答案 0 :(得分:1)
使用string关键字而不是2项数组:
get_the_post_thumbnail( $property->ID, 'post-thumbnails', array('class' => 'post_thumbnail') )
说明:使用数组会调整原始图像的大小,使用该字符串会渲染出难以裁剪的拇指
http://codex.wordpress.org/Function_Reference/get_the_post_thumbnail
答案 1 :(得分:0)
步骤1。将此函数粘贴到function.php文件
中function vt_resize( $attach_id = null, $img_url = null, $width, $height, $crop = false ) {
// this is an attachment, so we have the ID
if ( $attach_id ) {
$image_src = wp_get_attachment_image_src( $attach_id, 'full' );
$file_path = get_attached_file( $attach_id );
// this is not an attachment, let's use the image url
} else if ( $img_url ) {
$file_path = parse_url( $img_url );
$file_path = ltrim( $file_path['path'], '/' );
//$file_path = rtrim( ABSPATH, '/' ).$file_path['path'];
$orig_size = getimagesize( $file_path );
$image_src[0] = $img_url;
$image_src[1] = $orig_size[0];
$image_src[2] = $orig_size[1];
}
$file_info = pathinfo( $file_path );
$extension = '.'. $file_info['extension'];
// the image path without the extension
$no_ext_path = $file_info['dirname'].'/'.$file_info['filename'];
$cropped_img_path = $no_ext_path.'-'.$width.'x'.$height.$extension;
// checking if the file size is larger than the target size
// if it is smaller or the same size, stop right here and return
if ( $image_src[1] > $width || $image_src[2] > $height ) {
// the file is larger, check if the resized version already exists (for crop = true but will also work for crop = false if the sizes match)
if ( file_exists( $cropped_img_path ) ) {
$cropped_img_url = str_replace( basename( $image_src[0] ), basename( $cropped_img_path ), $image_src[0] );
$vt_image = array (
'url' => $cropped_img_url,
'width' => $width,
'height' => $height
);
return $vt_image;
}
// crop = false
if ( $crop == false ) {
// calculate the size proportionaly
$proportional_size = wp_constrain_dimensions( $image_src[1], $image_src[2], $width, $height );
$resized_img_path = $no_ext_path.'-'.$proportional_size[0].'x'.$proportional_size[1].$extension;
// checking if the file already exists
if ( file_exists( $resized_img_path ) ) {
$resized_img_url = str_replace( basename( $image_src[0] ), basename( $resized_img_path ), $image_src[0] );
$vt_image = array (
'url' => $resized_img_url,
'width' => $new_img_size[0],
'height' => $new_img_size[1]
);
return $vt_image;
}
}
// no cached files - let's finally resize it
$new_img_path = image_resize( $file_path, $width, $height, $crop );
$new_img_size = getimagesize( $new_img_path );
$new_img = str_replace( basename( $image_src[0] ), basename( $new_img_path ), $image_src[0] );
// resized output
$vt_image = array (
'url' => $new_img,
'width' => $new_img_size[0],
'height' => $new_img_size[1]
);
return $vt_image;
}
// default output - without resizing
$vt_image = array (
'url' => $image_src[0],
'width' => $image_src[1],
'height' => $image_src[2]
);
return $vt_image;
}
第2步显示在您的页面中。为此使用此
<a href="<?php the_permalink() ?>" rel="bookmark" alt="Read Moare about <?php the_title(); ?>" title="Read Moare about <?php the_title(); ?>" >
<?php
$thumb = get_post_thumbnail_id();
$image = vt_resize( $thumb,'' , 515, 700, true );
?>
<img src="<?php echo $image[url]; ?>" width="<?php echo $image[width]; ?>" height="<?php echo $image[height]; ?>" /> </a>
..其中515和700是大小。你可以随意改变!