首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wordpress中的照片大小问题

wordpress中的照片大小问题
EN

Stack Overflow用户
提问于 2013-04-20 01:47:47
回答 2查看 162关注 0票数 0

嗨,我有困难显示我的缩略图到图像的实际大小。

下面是我的代码:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
.property_photo {
 float:left; 
 max-width:300px;
 min-height:220px;
}

functions.php:

代码语言:javascript
复制
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 );

它显示了适当的宽度,但没有显示适当的高度。

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-20 02:13:15

使用字符串关键字而不是两项数组:

get_the_post_thumbnail( $property->ID, 'post-thumbnails', array('class' => 'post_thumbnail') )

说明:使用数组将调整原始图像的大小,使用字符串将渲染硬裁剪的拇指

http://codex.wordpress.org/Function_Reference/get_the_post_thumbnail

票数 1
EN

Stack Overflow用户

发布于 2013-04-20 03:29:29

Step1。将此函数粘贴到function.php文件中

代码语言:javascript
复制
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是在你的页面中显示。为此,请使用下面的代码

代码语言:javascript
复制
<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>

..where 515和700是大小。你可以随心所欲地改变它!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16110594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档