获取并输出完整大小的图像

时间:2014-11-05 15:05:02

标签: php wordpress

我正在尝试在wordpress中输出完整大小的图像。这是我的代码:

    <div class="content project clearfix">
    <?php if( have_rows('galeria') ):
            while ( have_rows('galeria') ) : the_row(); 
                $image = get_sub_field('imagen');
                $image_url = $image['sizes']['full'];?>
                <img class="project-item" src="<?php echo $image_url; ?>">
            <?php  endwhile;
    endif; ?>
    </div>

问题是我收到以下错误:

Warning: Illegal string offset 'sizes' in /Users/user/Sites/diana/wp-content/themes/site/single.php on line 13

Warning: Illegal string offset 'full' in /Users/user/Sites/diana/wp-content/themes/site/single.php on line 13

我想使用widthheight属性输出图像(这些attr是可变的,每个图像都有不同的大小)。就像这样:

<img class="project-item" src="img2.jpg" width="422" height="754">

2 个答案:

答案 0 :(得分:1)

在高级自定义字段中(因为您正在使用get_sub_field(),这意味着您正在使用该插件),请更改您的imagen字段以返回返回值中的图像ID。

然后,在调用图片时,请尝试以下操作:

<div class="content project clearfix">
    <?php if( have_rows('galeria') ):
        while ( have_rows('galeria') ) : the_row(); 
            $image = get_sub_field('imagen');
            $image_url = wp_get_attachment_image_src( $image, 'full' );
            $featImgURL = $featImgURL[0]; ?>
            <img class="project-item" src="<?php echo $image_url; ?>">
        <?php  endwhile;
    endif; ?>
</div>

答案 1 :(得分:1)

正如@Joe所提到的,你应该修改ACF图像字段以获得ID而不是URL

然后,您将要使用wp_get_attachment_img_src()。这将返回一个包含:

的数组
  • [0] =&gt;网址
  • [1] =&gt;宽度
  • [2] =&gt;高度
  • [3] =&gt; boolean:如果$ url是一个已调整大小的图像,则返回true;如果是原始图像,则返回false。

因此,在您的情况下,使用将是:

<div class="content project clearfix">
    <?php if( have_rows('galeria') ):
        while ( have_rows('galeria') ) : 
            the_row(); 
            $image = get_sub_field('imagen');
            $image_attributes = wp_get_attachment_image_src( $image, 'full' ); ?>
            <img class="project-item" src="<?php echo $image_attributes[0]; ?>" width="<?php echo $image_attributes[1]; ?>" height="<?php echo $image_attributes[2]; ?>">
        <?php  endwhile;
    endif; ?>
</div>

或者,您可以使用wp_get_attachment_image(),这样您就可以使用您所指的图像尺寸关键字。在这种情况下,使用方式如下:

<div class="content project clearfix">
    <?php if( have_rows('galeria') ):
        while ( have_rows('galeria') ) : 
            the_row(); 
            $image = get_sub_field('imagen');
            echo wp_get_attachment_image( $image, 'full' );
        endwhile;
    endif; ?>
</div>