2010-11-11 14 views
1

J'ai créé 2 messages personnalisés (pompiers et mario) pour mon modèle, et j'ai construit pour chacun d'entre eux 2 taxonomie (type-mario et le jeu à terme, type-pompiers et le jeu de terme) en ce moment j'utilise query_posts() pour montrer le titre des deux postes liés à leur terme, mais j'aime bien utiliser get_posts() à la place.get_posts() au lieu de query_posts() pour une publication personnalisée liée à un terme de taxonomie personnalisé

<?php query_posts(array('type-mario' => 'games', 'showposts' => 10)); ?> 
<p>Mario games</p> 
<?php while (have_posts()) : the_post(); ?> 
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
<h2><?php the_title(); ?></h2> 
</div> 
<?php endwhile; ?> 
<?php wp_reset_query(); ?> 


<?php query_posts(array('type-firemen' => 'games', 'showposts' => 10)); ?> 
<p> Firemen Games </p> 
<?php while (have_posts()) : the_post(); ?> 
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
<h2><?php the_title(); ?></h2> 
</div> 
<?php endwhile; ?> 
<?php wp_reset_query(); ?> 

Il fonctionne bien, mais je suis sûr qu'il est préférable d'utiliser get_posts() pour afficher les 2 messages de titre, mais je ne sais pas comment faire.

PS: Rappelez-vous qu'il ya 2 postes de douane, et non les messages classiques, la cause que je devais construire une taxonomie pour chacun de mes messages avec le même terme ...

Merci pour vos conseils.

Voici une solution:

<?php $posts = new WP_Query(array( 
    'taxonomy' => 'type-mario', 
    'term' => 'games', 
    'posts_per_page' => 10 
)); ?> 
<p>Mario games</p> 
<?php while ($posts->have_posts()) : $posts->the_post(); ?> 
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
    <h2><?php the_title(); ?></h2> 
    </div> 
<?php endwhile; ?> 
<?php wp_reset_query(); ?> 

Répondre

0

Si vous avez vu la documentation sur get_posts() il fonctionne semblable à query_posts().

La différence entre les deux est qu'avec query_posts() il va modifier les globales afin que vous ayez l'utilisation des fonctions globales "the _...".

Avec get_posts(), il retournera un tableau d'objets post que vous pouvez parcourir sans affecter la boucle en cours, le cas échéant. De plus, vous pouvez parcourir plusieurs ensembles de messages.

Note: dans l'exemple WordPress, la fonction setup_postdata($post) est utilisée, ce qui ajoute l'objet de poste en tant que global afin que vous êtes alors en mesure d'utiliser les « les _... » fonctions globales (faisant cela concernera toutefois La boucle).

Remarque:get_posts() doit prendre les mêmes paramètres que query_posts().