php
2012-03-26 10 views -1 likes 
-1

私のデータベースから情報を引き出すループがあります。 jQueryを使用せずに最初の行にクラスを追加するにはどうすればよいですか?クラスを最初の行に追加するPHP

while ($query->have_posts()) : $query->the_post(); 
        if ($keys = get_post_custom_keys()) { 
         echo "<div class='card-prod'><span class='card-title'>"; 
         echo the_title(); 
         echo "</span>"; 

         foreach ((array) $keys as $key) { 
         $keyt = trim($key); 
         if ('_' == $keyt{0} || 'pricing' == $keyt || 'vehicleType' == $keyt || 'coverageRegion' == $keyt || 'locationType' == $keyt) 
          continue; 
         $values = array_map('trim', get_post_custom_values($key)); 
         $value = implode($values,', '); 
         echo "<span class='srch-val'>".apply_filters(" $value\n", $value)."</span>"; 
         } 
         echo "\n"; 
         echo '<img src="wp-content/themes/cafc/images/cards/dummy.png" />'; 
         echo the_excerpt()."</div>";} 
       endwhile; 

答えて

2

あなたは($ I)そのためのカウンタをする必要があります:あなただけそれが最初の行かどうかを知りたい場合は、定義によって、ブールが適切であろう

   $i=0; 
      while ($query->have_posts()) : $query->the_post(); 
       if ($keys = get_post_custom_keys()) { 
        echo "<div class='card-prod ".($i==0?'yourclasshere':'')."'><span class='card-title'>"; 
        echo the_title(); 
        echo "</span>"; 

        foreach ((array) $keys as $key) { 
        $keyt = trim($key); 
        if ('_' == $keyt{0} || 'pricing' == $keyt || 'vehicleType' == $keyt || 'coverageRegion' == $keyt || 'locationType' == $keyt) 
         continue; 
        $values = array_map('trim', get_post_custom_values($key)); 
        $value = implode($values,', '); 
        echo "<span class='srch-val'>".apply_filters(" $value\n", $value)."</span>"; 
        } 
        echo "\n"; 
        echo '<img src="wp-content/themes/cafc/images/cards/dummy.png" />'; 
        echo the_excerpt()."</div>"; 
        $i++; 
        } 
      endwhile; 
+0

ありがとうhaltabush! – Liam

+0

特定の状況で予期しない結果が生じることがあります。 – MrCode

+0

あなたはもっと具体的に@MrCodeできますか?あなたのソリューションはより良いです(ここで整数を使う必要はありません)。しかし、私はここで "予期しない結果"をどう見ることができません:) – haltabush

1

$count = 0; 
foreach ((array) $keys as $key) { 
    if ($count == 0) 
    { 
     //Do something 
    } 
    $count++; 
} 
1

ではなく、カウンタ。これは、いずれかの行でget_post_custom_keys()falseと評価された場合に機能します。

<?php 

$firstClassName = 'myclass'; // to be added to the first row 
$firstRow = true; 

while ($query->have_posts()) : $query->the_post(); 
       if ($keys = get_post_custom_keys()) { 

       $additionalClass = $firstRow ? ' ' . $firstClassName : ''; 

        echo "<div class='card-prod" . $additionalClass . "'><span class='card-title'>"; 
        echo the_title(); 
        echo "</span>"; 

        foreach ((array) $keys as $key) { 
        $keyt = trim($key); 
        if ('_' == $keyt{0} || 'pricing' == $keyt || 'vehicleType' == $keyt || 'coverageRegion' == $keyt || 'locationType' == $keyt) 
         continue; 
        $values = array_map('trim', get_post_custom_values($key)); 
        $value = implode($values,', '); 
        echo "<span class='srch-val'>".apply_filters(" $value\n", $value)."</span>"; 
        } 
        echo "\n"; 
        echo '<img src="wp-content/themes/cafc/images/cards/dummy.png" />'; 
        echo the_excerpt()."</div>"; 

        $firstRow = false; 

        } 
      endwhile; 

?> 
関連する問題