2010-04-02 3 views
1

Quelques informations de fond -Comment puis-je boucle à travers les postes ainsi que les pages de l'enfant pour les afficher par date dans Wordpress 2.9

En wordpress j'ai mon portefeuille une page mère avec chaque élément de travail une page enfant . J'ai aussi un blog.

Je veux afficher les 6 plus récents contenus de la page d'accueil, qu'ils proviennent de mon portfolio ou de mon blog. J'ai une boucle qui affiche les messages et sur une autre page j'ai une boucle qui affiche les pages enfant d'une page parent spécifique. J'ai juste besoin d'afficher the_title et the_post_thumbnail.

Est-il possible de faire défiler à la fois les publications et les pages enfants et de les afficher par ordre de date (les plus récentes en premier). L'affichage final serait donc un mélange de messages et de pages enfants. Pourrait-il être fait en ayant une boucle séparée pour les pages et un pour les messages, puis en quelque sorte en ajoutant les résultats à un tableau, puis les sortir dans l'ordre de la date (le plus récent en premier).

Toute aide serait utile.

Merci

Répondre

0

Je n'ai pas essayé moi-même, mais je pense que vous pouvez utiliser la balise de modèle get_posts avec post_type => 'any'.

Comme si (commande par défaut est la date décroissant):

<?php 
$args = array('post_type' => 'any', 'numberposts' => 6); 
$posts_and_pages = get_posts($args); 
?> 
+0

Merci, qui fonctionne très bien - juste besoin de savoir que vous pouvez avoir « post_type » => « any » Maintenant je dois exclure des pages spécifiques et des catégories de postes de la boucle . Les catégories sont faciles, juste 'chat' => '-19' mais je n'arrive pas à exclure les pages (comme la page d'accueil). –

+0

Je l'ai compris if ($ post-> ID == '19') continue; ?> ignore cet identifiant de poste spécifique (qui est en fait l'identifiant de page de la page d'accueil) Merci encore –

+1

Utiliser continue dans la boucle vous donnera le mauvais nombre de messages, cependant. Si vous demandez 6 messages, puis que vous en ignorez 2 dans la boucle, vous n'afficherez que 4. Je crois que vous pouvez utiliser 'exclude' => '19' dans $ args pour get_posts à la place. – vicvicvic

2

Utilisez un custom query.

Exemple

$latest_content = new WP_Query(
    array(
     'posts_per_page' => 6, 
     'post_type' => 'any', 
     'post_status' => 'publish' 
    ) 
); 
if ($latest_content->have_posts()) 
{ 
    while ($latest_content->have_posts()) 
    { 
     $post = $latest_content->next_post(); 
     // Do anything you know about the loop. 
     print $post->guid . '<br>'; 
    } 
} 
rewind_posts(); 
Questions connexes