2009-07-29 2 views
1

Ich habe ein Array von Post-IDs in $ postarray enthalten. Ich möchte die Beiträge, die diesen IDs in Wordpress entsprechen, drucken. Der Code ich verwende ist wie folgt:Wie kann ich Wordpress Print Posts haben, deren IDs in einem Array erscheinen?

query_posts(array('post__in' => $postarray)); 
if (have_posts()) : 
    while (have_posts()) : the_post(); 
     the_title(); 
     the_excerpt(); 
    endwhile; 
endif; 

Trotzdem druckt die Schleife der neuesten Beiträge und nicht die in der Anordnung enthalten sind Beiträge. Wie kann ich wordpress die Post-IDs verwenden, die ich im Array zur Verfügung stelle, und diese Posts in der richtigen Reihenfolge drucken?

+0

ich Antworten halten eingeben, aber das sollte funktionieren. Vielleicht möchten Sie versuchen, eine neue WP-Abfrageklasse zu erstellen. –

+0

Versuchte neue WP_Query(); - kein Glück. –

Antwort

0

Sie können aus dem Standard-WP-Schleife für diese brechen ...

Versuchen und verwenden Sie die get_post() Funktion, welche die ID eines Pfosten nimmt und gibt ein Objekt ein die Details enthält, der Beitrag im üblichen OBJECT- oder Associate- oder Numeric-Array-Format.

Siehe full-explanation of get_post().

Sie können eine benutzerdefinierte Routine erstellen, um jedes Element im Array zu analysieren. Hier ist ein kurzes Beispiel:

function get_posts_by_ids($postarray = null) { 
    if(is_array($postarray)) 
     foreach($postarray as $post) { 
      $post_details = get_post($post[0]); 

      // Title 
      echo $post_details->post_title; 
      //Body 
      echo $post_details->post_content ; 
     } 
} 

this helps :)

+0

Wenn ich Ihren Code ausführen, bekomme ich einen "Nur Variablen können durch Verweis übergeben werden" Fehler in dieser Zeile: $ post_details = get_post ($ post [0]); –

+0

Hoppla !! Dummer Fehler ... da ich einen Iterator benutze, brauche ich keinen Index, d. H. $ Post [0]. Sie sollten $ post_details = get_post ($ post); stattdessen. –

+0

Ich hätte das merken sollen. Vielen Dank. –

Verwandte Themen