2016-09-06 12 views
0

高度なカスタムフィールド内にループを表示する必要があります。このコードは、最初のイメージのみを返します。 ACFリピータフィールド内高度なカスタムフィールドのループイメージ

<?php if(have_rows('colors')): ?> 

    <ul> 

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

    <?php $image = wp_get_attachment_image_src(get_field('colori'), 'full'); ?> 
<img src="<?php echo $image; ?>" alt="<?php echo get_the_title(get_field('colors')) ?>" /> 

    <?php endwhile; ?> 

    </ul> 

<?php endif; ?> 

答えて

1

あなたはget_sub_field()、ないget_field()を使用する必要があります。だからあなたのコードは次のようになります。

<?php if(have_rows('colors')): ?> 

    <ul> 

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

    <?php $image = wp_get_attachment_image_src(get_sub_field('colori'), 'full'); ?> 
<img src="<?php echo $image[0]; ?>" alt="<?php echo get_the_title(get_sub_field('colors')) ?>" /> 

    <?php endwhile; ?> 

    </ul> 

<?php endif; ?> 

それは私があなたのACF(リピータ)のサブフィールドの命名方法がわからないので、それが再び偽の値を返すことも可能です。

サブフィールド 'colori'は、IDを出力するACFイメージフィールドでなければなりません。配列やその他のものではありません。

wp_get_attachment_image_src()は配列を返します。 [0] => url , [1] => width, [2] => height

リピータフィールドのドキュメントhereを参照してください。

+0

素晴らしいですが、私はACF PRO – Geme

+0

を使用していません。残念ですが、 'has_rows()'はACF(プロまたはプレミアムアドオン)のリピーターまたはフレキシブルコンテンツフィールドにのみ適用されます。 。 –

関連する問題