2017-05-03 16 views
1

誰かが私が持っている2つのコードブロックを組み合わせるのを助けることができるのだろうかと思った。私は1つのブロックと2つのアイテムごとにdivを追加することで行をループして表示することを可能にします。...コードの最初のビット、ループ:PHPループとカウントを組み合わせる - Wordpress ACF

<?php if(get_field('areas')): ?> 



       <?php while(has_sub_field('areas')): ?> 


        <div class="single-area-item six columns"> 
         <p> <img src="<?php the_sub_field('area_icon'); ?>" style="width:100%;"> <p> 
         <h4> <?php the_sub_field('area_title'); ?> </h4> 
         <p> <?php the_sub_field('area_info'); ?> <p> 
        </div> 

       <?php endwhile; ?> 



     <?php endif; ?> 

これは単に次々にそれらを表示...私はWordpressのためのアドバンスカスタムフィールドを使用していますし、これはリピータフィールドを引っ張っています。

これは、私がうまく行に表示するために見つけたコードです。

<?php 

$num = 1; 
foreach ($terms as $term) { 
if($num%2) { 
    echo '<div class="area-row">'; 
} 

// Other Code 

if($num %2) { 
    echo '</div>'; 
} 
$num++ 
} 

?> 
私は2つの列に表示したい

...

ONE TWO THREE FOUR FIVE SIX

等...だから、

、イムは、私が必要と推測します何とかコードを組み合わせるには...私は現在これを持っていますが、うまくいきません:

<?php 

$num = 1; 
foreach ($terms as $term) { 
if($num%2) { 
    echo '<div class="area-row">'; 
} 

if(get_field('areas')): ?> 



       <?php while(has_sub_field('areas')): ?> 


        <div class="single-area-item six columns"> 
         <p> <img src="<?php the_sub_field('area_icon'); ?>" style="width:100%;"> <p> 
         <h4> <?php the_sub_field('area_title'); ?> </h4> 
         <p> <?php the_sub_field('area_info'); ?> <p> 
        </div> 

       <?php endwhile; ?> 



     <?php endif; ?> 

if($num %2) { 
    echo '</div>'; 
} 
$num++ 
} 

?> 
+0

動作しないようだと言うとどういう意味ですか?あなたが実際に得ている出力は何ですか? –

+0

こんにちは@ben私は恐れている私は恐れているすべての出力を取得していない、私はそのコードを試してみたら、ちょうど読み込まれていない白い、空白のページを示しています。 –

+0

これはテンプレートファイル全体ですか? –

答えて

1

これは単純な問題がいくつかあったようですので、あなたはif文の後にphpタグを閉じてからphpタグを再度開くことなくphpを書き続けました。また、if($ num%2)文にはわずかな論理エラーがあります。これらの文の一方が必要ならば、もう一方はそうでなければならないので、交互にする必要があります。

このコードを試してみてください、私はあなたが上で取得する方法を知ってみましょう:

<?php 
if(get_field('areas')): 
    $num = 1;  
?> 
     <?php while(has_sub_field('areas')): 
     if($num%2) { 
      echo '<div class="area-row">'; 
     } ?> 

      <div class="single-area-item six columns"> 
       <p> <img src="<?php the_sub_field('area_icon'); ?>" style="width:100%;"> <p> 
       <h4> <?php the_sub_field('area_title'); ?> </h4> 
       <p> <?php the_sub_field('area_info'); ?> <p> 
      </div> 
      <?php 
      if(!$num%2) { 
       echo '</div>'; 
      } 
      $num++ 
     endwhile; ?> 
    <?php endif; ?> 
+0

この@Benのおかげでありがたいことですが、うまくいきません。ページを読み込んでいます...これは、どこかに何かの終了タグがないことを意味しますか? –

+0

私はそれが最良の方法であるかどうかわかりませんが、実際には –

+0

のnth-child要素を使用して動作させることができました! ..... シングルエリア項目:nth-​​child(3n + 3){ margin-left:0; } –

0

私はそれとして、項目をループの3番目の項目を対象とすることができるようにするために、この問題の背後にある主な理由でした私が取り除く必要がある行を壊していたパディングがありました。

私は以来、動作しているように見える別の解決策を見つけました。

nth-child要素を使用することで、問題を修正してループしている3番目のアイテムごとに、パディングを対象にして削除することができました。

.single-area-item:nth-child(3n+3) { 
    margin-left: 0; 
} 

これは、3または4の列であった場合、それは、それぞれ、すべての4番目または5番目の項目をターゲットにする必要がある、行または2つのアイテムのためのものです。

関連する問題