2016-06-21 13 views
0

Ich brauche Hilfe mit dem folgenden Code. Es wird alphabetisch in einer einzelnen Spalte angezeigt. Wie kann ich dies ändern, um in 3 Spalten angezeigt zu werden?Wordpress Display Post in mehrere Spalten eingeben

A

Apple 1 
Apple 2 
Apple 3 

B

Beattle 1 
Beattle 2 
Beattle 3 

C

Cattle 1 
Cattle 2 
Cattle 3 

I die Säule in 2 Base aus der Gesamtbeiträge teilen möchten.

$count_posts = wp_count_posts('partner'); 
$lastChar = '';     

while($list->have_posts()): $list->the_post(); 
    global $post; 

    $brandname = $post->post_title; 
    $char = $brandname[0];      

    if ($char !== $lastChar) { 
     if ($lastChar !== '') 
      echo '<br>';      
      echo "<div style='padding:10px; background:red; 
        color:white; font-weight:bold;'>". 
       strtoupper($char)."</div>"; 
     //print A/B/C etc 
     $lastChar = $char; 
    }       

    echo '<li><a href="'.$post->link.'" 
       title="'.$post->post_title.'" 
       target="_BLANK" >' . 
     $brandname.'</a></li>';       


    endwhile; 

    wp_reset_postdata(); 
+1

Code-Formatierung verbessern, Kopf er Wortlaut. – Prune

+0

Danke beschneiden. Hast du ich Dea? – user3103905

+0

@ user3103905 Überprüfen Sie meine Antworten –

Antwort

0

Versuchen Sie, diese

Gebrauchte WP_Query für get Post mit orderbypost_title und order ist ASC

Andere Code fein prüfen unten Code

$args = array(
     'posts_per_page' => -1, 
     'post_type'   => 'partner', 
     'post_status'  => 'publish', 
     'orderby'   => 'post_title', 
     'order'    => 'ASC', 

    ); 
$list = new WP_Query($args); 
$count_posts = wp_count_posts('partner'); 
$lastChar = ''; 
if ($list->have_posts()) : 
while($list->have_posts()): $list->the_post(); 
    global $post; 

    $brandname = $post->post_title; 
    $char = $brandname[0];      

    if ($char !== $lastChar) { 
     if ($lastChar !== '') 
      echo '<br>';      
      echo "<div style='padding:10px; background:red; 
        color:white; font-weight:bold;'>". 
       strtoupper($char)."</div>"; 
     //print A/B/C etc 
     $lastChar = $char; 
    }       

    echo '<li><a href="'.$post->link.'" 
       title="'.$post->post_title.'" 
       target="_BLANK" >' . 
     $brandname.'</a></li>';       


    endwhile; 
    endif; 
    wp_reset_postdata(); 

EDIT Für die Anzeige arbeitet in 3 Spalten

Deklarieren $inc=0 über der while-Schleife

ändern Sie dies, wenn bock mit alten Block

if ($char !== $lastChar) { 
       if($inc!=0){echo "</div>";}$inc++;    
       echo "<div class='colm'><div style='padding:10px; background:red; 
         color:white; font-weight:bold;'>". 
        strtoupper($char)."</div>"; 
      //print A/B/C etc 
      $lastChar = $char; 
} 

diesen Stil in CSS hinzufügen

.colm{ 
     float:left; 
     margin: 10px; 
     width: 30%; 
    } 

Image

+0

Hallo Ankur, Vielen Dank für Ihre Antwort. Der obige Code funktioniert und Ihr auch. Mein Problem ist, wie man es in 3 Spalten anzeigen lassen kann – user3103905

+0

@ user3103905 check my bearbeiten Antwort –

+0

Hallo Ankur, können Sie mir helfen, die zweite Antwort behoben, ich habe einen Screenshot des Ergebnisses veröffentlicht. Das Problem ist, dass es sich nicht richtig gruppiert. – user3103905