2016-11-29 8 views
-2

これをループするのに役立つ必要があります。ループの最初のアイテムに別のスタイリングを追加したいと思います。PHP foreachループの最初の項目を取得する

私はHow to determine the first and last iteration in a foreach loop?PHP - Grab the first element using a foreachをどうにかして使用しようとしましたが、それは何もしません。上記の2つのブロックは、コードを適用する速度の問題も共有しているようです。

私の質問をよりよく理解するためにコード内のコメントを見てください。

<?php 
         $prod_categories = get_terms('product_cat', array('posts_per_page' => -1, 'orderby' => 'date', 'order' => 'ASC', 'hide_empty' => true)); 

         foreach($prod_categories as $prod_cat => $item) { 
          $cat_thumb_id = get_woocommerce_term_meta($prod_cat->term_id, 'thumbnail_id', true); 
          $shop_catalog_img = wp_get_attachment_image_src($cat_thumb_id, 'shop_catalog'); 
          $term_link = get_term_link($prod_cat, 'product_cat'); ?> 

          <!-- if first item echo 
          <div class="col-md-8 fig-hold"> 
           <a href="<?php echo $term_link; ?>" style="text-decoration: none;"> 
            <div class="figure"> 
             <img src="<?php echo $shop_catalog_img[0]; ?>" class="img-responsive" alt="<?php echo $prod_cat->name; ?>" /> 
             <div class="figureName"><?php echo $prod_cat->name; ?></div> 
            </div> 
           </a> 
          </div> 


          else -->     
          <div class="col-md-4 fig-hold"> 
           <a href="<?php echo $term_link; ?>" style="text-decoration: none;"> 
            <div class="figure"> 
             <img src="<?php echo $shop_catalog_img[0]; ?>" class="img-responsive" alt="<?php echo $prod_cat->name; ?>" /> 
             <div class="figureName"><?php echo $prod_cat->name; ?></div> 
            </div> 
           </a> 
          </div> 

        <?php } wp_reset_query(); ?>      
+0

omukiguy、私の答えを参照してください。 – Ionut

+0

@ionut私はそれを試していますが、これまでのところです。結果が表示されない – omukiguy

+0

もう一つの問題です。あなたはそれについて別の質問を掲示するべきです。私のコードは、この質問で動作するはずです。 – Ionut

答えて

0

あなたはカウンターを追加し、それに基づいて、最初の要素にクラスを追加し、あなたが今CSSと、そのクラスのスタイルを設定することができますすることができます

ここ

<?php 
 
$prod_categories = get_terms('product_cat', array(
 
    'posts_per_page' => -1, 
 
    'orderby' => 'date', 
 
    'order' => 'ASC', 
 
    'hide_empty' => true 
 
)); 
 
$count = 0; 
 
$class = ''; 
 
foreach ($prod_categories as $prod_cat => $item) { 
 
    $count++; 
 
    if ($count == 1) { 
 
     $class = 'extra_class'; 
 
    }else{ 
 
     $class = ''; 
 
    } 
 
    $cat_thumb_id  = get_woocommerce_term_meta($prod_cat->term_id, 'thumbnail_id', true); 
 
    $shop_catalog_img = wp_get_attachment_image_src($cat_thumb_id, 'shop_catalog'); 
 
    $term_link  = get_term_link($prod_cat, 'product_cat'); 
 
?>    
 
      <div class="col-md-4 fig-hold <?php echo $class; ?>"> 
 
       <a href="<?php echo $term_link; ?>" style="text-decoration: none;"> 
 
        <div class="figure"> 
 
         <img src="<?php echo $shop_catalog_img[0]; ?>" class="img-responsive" alt="<?php echo $prod_cat->name; ?>" /> 
 
         <div class="figureName"><?php echo $prod_cat->name; ?></div> 
 
        </div> 
 
       </a> 
 
      </div> 
 

 
<?php 
 
} wp_reset_query(); 
 
?>

+0

ありがとうございます。私はそれを私の必要性に合わせて微調整しました。 – omukiguy

+0

私はうまく働いているよ。 – Ionut

+0

私は変数の後にループを移動し、クラスを実行しました(ブートストラップ) – omukiguy

0

を私の最終的なコードです。ありがとう@ionut

<?php 
    $prod_categories = get_terms('product_cat', 
           array('posts_per_page' => -1, 'orderby' => 'date', 'order' => 'ASC', 'hide_empty' => true)); 

    foreach($prod_categories as $prod_cat) { 
     $cat_thumb_id = get_woocommerce_term_meta($prod_cat->term_id, 'thumbnail_id', true); 
     $shop_catalog_img = wp_get_attachment_image_src($cat_thumb_id, 'shop_catalog'); 
     $term_link = get_term_link($prod_cat, 'product_cat'); 

    $count++; 
    if ($count == 1) { $class = 'col-md-8'; } else{ $class = 'col-md-4'; } 
    ?> 
    <div class="<?php echo $class; ?> fig-hold"> 
     <a href="<?php echo $term_link; ?>" style="text-decoration: none;"> 
      <div class="figure"> 
       <img src="<?php echo $shop_catalog_img[0]; ?>" class="img-responsive" alt="<?php echo $prod_cat->name; ?>" /> 
       <div class="figureName"><?php echo $prod_cat->name; ?></div> 
      </div> 
     </a> 
    </div> 

<?php } wp_reset_query(); ?> 
関連する問題