2016-03-22 12 views
0

Ich bin Bauabschnittes auf meiner Website vorge Beiträge mit Wordpress-Tags (3 neusten Beiträge als „vorgestellten“ getaggt werden auf der Homepage gezeigt) mit diesem Code:Wordpress Post Schleife Hinzufügen Klasse

     <?php 

          $args=array(
           'tag' => 'featured', 
           'showposts'=>3, 
           'caller_get_posts'=>1 
          ); 
          $my_query = new WP_Query($args); 
          if($my_query->have_posts()) { 
           while ($my_query->have_posts()) : $my_query->the_post(); ?> 
           <div class="featured-article"> 
           <!--thumbnail, title and link code here --> 
           </div> 
           <?php 
           endwhile; 
          } //if ($my_query) 
          wp_reset_query(); // Restore global post data stomped by the_post(). 
         ?> 

Jeder Eintrag ist eingewickelt mit "featured-article", aber da ich möchte, dass der erste post volle breite und andere 2 halbe breite hat, frage ich mich, wie kann ich ihnen passende klassen hinzufügen? Also, der erste Post bekommt "volle Breite" Klasse und andere zwei "halbe Breite" ...

Ich entschuldige mich, wenn ich es nicht richtig erklärt (Englisch nicht die erste Sprache und alle).

Jede Hilfe würde sehr geschätzt

Antwort

0

Sie können dies mit Zähler lösen.

<?php 
     $args=array(
     'tag' => 'featured', 
     'showposts'=>3, 
     'caller_get_posts'=>1 
    ); 

     $my_query = new WP_Query($args); 

     //add classes 
     $counter = 0; 
     $classes = ''; 

     if($my_query->have_posts()) { 
      while ($my_query->have_posts()) : $my_query->the_post(); 
       $classes = $counter == 0 ? ' full-width' : ' half'; 
?> 
     <div class="featured-article<?php echo $classes; ?>"> 
      <!--thumbnail, title and link code here --> 
     </div> 
<?php 
       $counter++; 
      endwhile; 
     } //if ($my_query) 

     wp_reset_query(); // Restore global post data stomped by the_post(). 
    ?> 

Oder Sie können ein benutzerdefiniertes Feld für die Additionsklasse erstellen.

+0

sind meine PHP-Fähigkeiten ziemlich einfach angewendet wird , aber eine Frage, was passiert dann mit "halber Breite" Klasse für andere 2 Gegenstände? Ich würde benutzerdefinierte Felder verwenden, aber Client will die sauberste Lösung möglich (sie wollen nichts hinzufügen, außer der Post selbst) –

+0

Ok ich meine Antwort bearbeitet muss dies Arbeit – htmlbrewery

+0

Vielen Dank eine Million! Aber es funktioniert nicht, ich bekomme einen "Parse-Fehler: Syntaxfehler, unerwartete 'wenn' (T_IF)" Fehler –

1

Sie können den Index Ihres Posts mit $ my_query-> current_post abrufen, während Sie in der Schleife sind.

$class = $my_query->current_post == 0 ? 'full-width' : 'half-width'; 

Vielleicht möchten Sie auch sicherstellen, dass die Klasse nur auf das erste Element der ersten Seite

$class = $my_query->current_post == 0 && !is_paged() ? 'full-width' : 'half-width'; 

Ihre Schleife Hier

<?php 

$args=array(
    'tag' => 'featured', 
    'showposts'=>3, 
    'caller_get_posts'=>1 
); 

$my_query = new WP_Query($args); 


if($my_query->have_posts()) { 
    while ($my_query->have_posts()) : $my_query->the_post(); 

    $class = $my_query->current_post == 0 && !is_paged() ? 'full-width' : 'half-width'; ?> 

     <div class="featured-article <?php echo $class; ?>"> 

     </div> 
    <?php 
    endwhile; 
} //if ($my_query) 

wp_reset_query(); // Restore global post data stomped by the_post(). 
?> 
+0

Das funktioniert gut, aber alle Beiträge bekommen "halbe Breite" Klasse –

+0

Sollte jetzt funktionieren. Einen Fehler beim Formatieren gemacht .. – NICO

+1

Jetzt sehe ich "$ class = $ my_query-> current_post == 0 &&! Is_paged()? 'Full-width': 'half-width';" über jedem Beitrag: D Sorry, dich so lange zu langweilen ... –

Verwandte Themen