高级自定义字段 - 缩略图

时间:2016-01-01 13:46:28

标签: php wordpress advanced-custom-fields

使用Advanced Custom Fields(ACF),我通常使用以下代码显示具有特定缩略图大小的特定字段(使用图像ID):

$image = get_field('field_name_here'); 
$size = 'thumbnail_size_here'; 
if( $image ) { 
    echo wp_get_attachment_image( $image, $size );
}

但是,当我尝试在转发器字段中使用此代码时,它只是吐出数字。

我已尝试将上述代码更新为:

$image = the_sub_field('field_name_here'); 
$size = 'thumbnail_size_here'; 
if( $image ) { 
    echo wp_get_attachment_image( $image, $size );
}

然而,这不起作用,它再次吐出数字。完整的代码将是这样的:

<?php if(get_field('example_repeater_field')): ?>
    <ul>
        <?php while(has_sub_field('example_repeater_field')): ?>

        <li>
            <?php 
            $image = the_sub_field('field_name_here'); 
            $size = 'thumbnail_size_here'; 
            if( $image ) { 
                echo wp_get_attachment_image( $image, $size );
            } ?>
        </li>

       <?php endwhile; ?>
    </ul>
<?php endif; ?>

我已阅读ACF网站上的信息,但看不到任何与自定义缩略图尺寸相关的信息。

之前是否有人遇到此问题并找到解决方案?

2 个答案:

答案 0 :(得分:0)

我不是while循环和多次请求的忠实粉丝,所以我通常更喜欢只使用一个请求来获取数据,然后使用foreach循环访问它,如下所示:

<?php $fields = get_field('repeater_field'); ?>
<?php foreach ($fields as $field): ?>
    <?= $field['field_name']; ?>
<?php endforeach; ?>

此外,您可以尝试将图像字段设置为返回图像对象(而不是id),并显示如下图像:(see the "Customized display (Object)" section)

<?php $image = get_field('image'); ?>
<?php echo $image['sizes']['thumbnailSize']; ?>

在你的情况下会给我们这样的东西(一旦你设置了你的acf字段来返回一个对象):

<?php $fields = get_field('repeater_field'); ?>
<?php if( !empty($fields) ): ?>
    <ul>
        <?php foreach ($fields as $field): ?>
            <li><?= $field['field_name']['sizes']['thumbnail_size']; ?></li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

答案 1 :(得分:0)

我在转发器字段循环中得到了这个

<?php if(have_rows('column')):
while(have_rows('column')) : the_row(); ?>

    <?php   $image = get_sub_field('image');
    if( !empty($image) ):

    $url = $image['url'];
    $caption = $image['caption'];

    // thumbnail size (column) declared in functions.php
    $size = 'column';
    $thumb = $image['sizes'][ $size ]; ?>

    <?php endif; ?>


    <img src="<?php echo $thumb; ?>">

但这只有在ACF

中将返回值设置为“图像数组”时才有效