2016-11-03 23 views
0

トピックはちょっと言います。私は、ACFリピーターフィールドの最初の2つのフィールドだけを引き出す必要があります。Wordpress ACF Repeaterフィールド - 最初の2つのフィールドのみをプル

<?php $args = [ 'posts_per_page' => 2, 'order' => 'desc']; ?> 
<?php $ar = new WP_Query($args); ?> 

<?php if($ar->have_rows('prodImgs')): while ($ar->have_rows('prodImgs')) : $ar->the_row(); ?> 

    <img src="<?php the_sub_field('prodImg'); ?>" alt=""> 

<?php endwhile; ?> 
<?php endif; ?> 

がどのように私はこれを行うことになっています。ここでは

は、私が使用しようとしていますが、それは明らかに適切ではない何ですか?

+0

表示するフィールドは何ですか?最初の2つのフィールドだけが必要であると言うと、それはリピータの最初の2つの行を意味しますか? – Jrod

答えて

1
<?php 
// check if the repeater has data 
if(have_rows('prodImgs')) { 
    //counter 
    $i=0; 
    //loop through the rows 
    while(have_rows('prodImgs')) { 
    the_row(); 
    //check if 2 subfields have been shown 
    if ($i > 1) { break; } 
    echo "<img src='" . get_sub_field('prodImg_sub') . "' alt='Lorem ipsum'>"; 
    $i++; 
    } 
} 
?> 

あなたはリンゴと梨、WP_QueryとACFリピータフィールドを混合しています。 WP_Queryはポストデータを返しますが、ACFファンクションhave_rows($repeater_field_name, $post_id);は、あなたのページ/ポストにある(または関連するポスト/ページに$ post_idを指定した)カスタムフィールドリピータのデータがあるかどうかをチェックします。詳細情報https://www.advancedcustomfields.com/resources/repeater/

0

<?php $rows = get_field('prodImgs'); ?> 
 

 
<?php $i = 0; if ($rows):?> 
 

 
    <?php foreach($rows as $row): ?> 
 

 
     <img src="<?php echo $rows[$i][/* name of first field */]; ?>" alt=""> 
 
     <?php echo $rows[$i][/* name of Second field */]; ?> 
 

 
    <?php $i++; endforeach; ?> 
 

 
<?php endif; ?>

関連する問題