控制图像输出大小ACF中继器

时间:2016-02-25 作者:RLM

我使用的是ACF转发器,无法控制输出大小,包括Wordpress主题支持自定义图像大小

    add_theme_support(\'post-thumbnails\');
    add_image_size(\'large\', 700, \'\', true); 
    add_image_size(\'medium\', 250, \'\', true); 
    add_image_size(\'small\', 120, \'\', true); 
    add_image_size(\'custom-size\', 700, 200, true);
我当前正在使用图像url在ACF repeater字段中进行选择,因为我无法使用ID或对象获取要显示的图像。我花了数小时阅读与此主题相关的文章和问题,但找不到与我的代码相关的答案。这是我最近的一次尝试。

 <?php foreach(get_field(\'landing_slideshow\') as $landing_slideshow) { ?>
     <div class="landing-photo clear" style="background-image:url(\'<?php echo $landing_slideshow[\'landing_slide\'][\'sizes\'][\'medium\']; ?>\');">
     </div>
 <?php } ?>
我只是想使用“大”、“自定义大小”等指定图像输出大小。

提前谢谢。

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

我总是将ACF设置为返回“ID”(而不是对象或URL)-这样ACF就不会参与(可能会用大量我不需要的数据填充对象),我可以随心所欲:

<?php

$landing_slideshows = get_field( \'landing_slideshow\' );

// var_dump( $landing_slideshows );

foreach( $landing_slideshows as $landing_slideshow ) : ?>

    <div class="landing-photo clear"<?php

        $image_id = $landing_slideshow[\'landing_slide\'];
        $src = wp_get_attachment_image_src( $image_id, \'large\' );

        // Only print style bg if image valid & exists, unlikely but good practice
        if ( $src ) {
            // $src is an array with 3 items: URL, width, height
            printf( \' style="background-image: url(%s);"\', $src[0] );
        }

    ?>><?php

        // var_dump( $image_id );
        // var_dump( $src );

    ?></div>

<?php endforeach ?>