2017-05-17 8 views
0

入力したACFリピータフィールドのすべてのペアの周りにdivを追加する必要があります。 私は、3つのフィールドごとに仕事をするコードスニペットを持っています。番号を変更するたびに、次のdiv IDが前の子IDになります。 どのような提案も素晴らしいでしょう!ありがとう2つのリピータフィールドごとにdivを追加するACF

// check if the repeater field has rows of data 
if(have_rows('services')): 
    // loop through the rows of data 

    // add a counter 
    $count = 0; 
    $group = 0; 

    while (have_rows('services')) : the_row(); 
    // vars 
    $teacher_bio = get_sub_field('service_title'); 
    $teacher_name = get_sub_field('service_information'); 
    $teacher_image = get_sub_field('icon'); 
    if ($count % 3 == 0) { 
     $group++; 
     ?> 
     <div id="services-<?php echo $group; ?>" class="cf group-<?php echo $group; ?>"> 
     <?php 
    } 
    ?> 
    <div class="service"> 
     <img src="<?php the_sub_field('icon'); ?>" /> 
     <p><?php echo $teacher_name; ?></p> 
     <?php echo $teacher_bio; ?> 
    </div><!-- .teacher --> 
    <?php 
     if ($count % 3 == 2) { 
     ?> 
      </div><!-- #services --> 
     <?php 
     } 
     $count++; 
    endwhile; 
else : 
    // no rows found 
endif; 
+0

が、これは簡単なことではありませんが、あなたは自分のリピータ内部リピーターがあったら?それぞれの "教師/サービス"の行があり、あなたが望む任意のhtmlでそれをラップすることができます – Stender

答えて

0

これは簡単にカスタムjqueryを使用して行うことができます。

0

モジュラス関数が正しくありません。 2つのループごとにチェックしたいので、% 2を使用してください。開始divには0、終了divには1を使用してください。

私はあなたのために簡単な例を作成しました:中

<?php 

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); 
$count = 0; 

foreach ($arr as &$value) { 

    if ($count % 2 == 0) { 
     echo '<div>'; 
    } 

    echo $value; 


    if ($count % 2 == 1) { 
     echo '</div>'; 
    } 

    $count++; 

} 

結果: <div>12</div><div>34</div><div>56</div><div>78</div><div>910</div>

関連する問題