2012-03-30 11 views
0
Klasse zum ersten Folge hinzufügen

ich habe folgendesWhile-Schleife

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


// Network query 
    $network_value = get_post_custom_values('srchnetwork'); 
    foreach ($network_value as $key => $value) { 
    echo '<span class="srch-val-">'. $value . '</span>'; } 

// Pricing Query 
    $pricing_value = get_post_custom_values('srchpricing'); 
    foreach ($pricing_value as $key => $value) { 
    echo '<span class="srch-val-1">'. $value . '</span>'; } 

// Setup Query 
    $setup_value = get_post_custom_values('srchsetupfee'); 
    foreach ($setup_value as $key => $value) { 
    echo '<span class="srch-val-2">'. $value . '</span>'; } 

// Services Query 
    $services_value = get_post_custom_values('srchservices'); 
    foreach ($services_value as $key => $value) { 
    echo '<span class="srch-val-3">'. $value . '</span></div>'; } 

// Big Card Query 
    $bigcard_value = get_post_custom_values('bigcard'); 
    foreach ($bigcard_value as $key => $value) { 
    echo '<img src="wp-content/themes/cafc/images/cards/'. $value . '" />'; } 


//  echo '<img src="wp-content/themes/cafc/images/top-choice.jpg" alt="Top Choice" class="topchoice">'; 

    echo the_excerpt()."</div>"; }}; 
} 

Im fragen, ob ihre möglich, dass ich die erste zurückgegebene Ergebnis in einem span-Tag wickeln kann? Wenn ja, wie würde ich das machen? Dank

Antwort

2
$i = -1; 
while ($query->have_posts()) 
{ 
$i++; 
$query->the_post(); 
if ($keys = get_post_custom_keys()) 
{ 
echo "<div class='clearfix card-prod ".($i?'first':'')."'><div class='top-dets'><span class='card-title'>"; 
echo the_title(); 
echo "</span>"; 
... 

prüfen diese Linie ($i ? 'first' : '').

+0

Wenn Sie den Code für eine FOR-Schleife verwenden, wird die erste auf das zweite Element gesetzt, easy fix ($ i? '': 'First'). Das hat für mich funktioniert. –

0

Meine Vermutung auf dieser Basis wie folgt ergeben sich dann um jede Schleife in etwas würde ...

// Network query 
$neti = 1; 
$network_value = get_post_custom_values ('srchnetwork'); 
foreach ($network_value as $key => $value) { 
    if($neti == 1){ 
     echo '<span class="srch-val-">' . $value . '</span>'; 
    }else{ 
     echo $value; 
    } 
    $neti++; 
} 
+0

Ja @ scottevans93 – Liam

+0

@ scottevans93, wenn Sie Fragen zum ursprünglichen Poster haben, ist es besser, sie als Kommentare zu der Frage selbst zu stellen, anstatt sie als mögliche Antwort einzugeben. – Jazz

+0

@Jazz Es würde mich aus irgendeinem seltsamen Grund nicht lassen. – scottevans93

3

Als allgemeiner Ansatz können Sie jederzeit, wenn Sie Verhalten nur zum ersten Mal durch eine Schleife ausführen müssen, einfach eine Flag-Variable verwenden, um zu überprüfen, ob dieses Verhalten ausgeführt werden soll.

$firstLoop = true; 
while($query->have_posts()){ 

    //do some things 

    if($firstLoop){ 
     //do things on only the first loop 
    } 

    //do other things 

    $firstLoop = false; 
} 

Oder für eine foreach-Schleife:

$firstLoop = true; 
foreach($network_value as $key => $value){ 

    if($firstLoop){ 
     //do things on only the first loop 
    } 

    //do other things 

    $firstLoop = false; 
} 

Dies vermeidet, um Schleifen zu zählen, und es funktioniert für jede Struktur Schleife. Denken Sie daran, Ihre Flag-Variable immer am Ende der Schleife auf false zu setzen.