2009-07-29 5 views
1

J'ai un tableau d'ID poste contenu dans $ postarray. Je voudrais imprimer les messages correspondant à ces identifiants dans Wordpress. Le code que je utilise est la suivante:Comment puis-je avoir des publications d'impression wordpress dont les ID apparaissent dans un tableau?

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

Malgré cela, la boucle affiche les plus récents messages et pas les messages contenus dans le tableau. Comment puis-je avoir wordpress utiliser les ID poste que je fournis dans le tableau et imprimer ces messages dans l'ordre?

+0

je continue à taper des réponses, mais cela devrait fonctionner. vous pourriez vouloir essayer de créer une nouvelle classe WP Query. –

+0

Essayé nouveau WP_Query(); - pas de chance. –

Répondre

0

Vous pourriez avoir à sortir de la boucle norme WP pour cette ...

Essayez d'utiliser la get_post() fonction qui prend l'ID d'un poste et retourne un objet contenant un des détails de la publication dans le format habituel OBJECT ou Associate ou Numeric Array.

Voir full-explanation of get_post().

Vous pouvez créer une routine personnalisée pour analyser chaque élément de la matrice. Voici un bref exemple:

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 ; 
     } 
} 

Hope this helps :)

+0

Lorsque j'exécute votre code, j'obtiens une erreur "Seules les variables peuvent être transmises par référence" sur cette ligne: $ post_details = get_post ($ post [0]); –

+0

Oups !! Erreur stupide ... puisque j'utilise un itérateur, pas besoin de l'index, c'est-à-dire $ post [0]. Vous devriez utiliser $ post_details = get_post ($ post); au lieu. –

+0

J'aurais dû le remarquer. Merci. –

Questions connexes