web-dev-qa-db-fra.com

Combinez query_posts () et get_posts () en une seule requête

Je crée un site qui utilise des publications normales pour un blog et un type de publication personnalisé pour les événements (généré par le plug-in d'événements). J'ai utilisé avec succès différentes requêtes pour saisir les deux, mais je souhaite les combiner en une requête. J'ai essayé diverses choses sans succès.

Voici la requête pour le blog:

<?php $mainFeatures = array( 'numberposts' => -1, 'order'=> 'DESC', 'orderby' => 'post_date');
 $postslist = get_posts( $mainFeatures );
 foreach ($postslist as $post) :  setup_postdata($post); ?>            
      <!-- stuff from post-->
 <?php endforeach; ?>

Voici la requête pour les événements:

 <?php query_posts(array('post_type'=>array(TribeEvents::POSTTYPE), 'numberposts' => -1,'order' => 'ASC')); ?>
 <?php while (have_posts()) : the_post(); ?>
      <!-- stuff from post-->
 <?php endwhile;?>

Avoir essayé cela, mais encore une fois seulement obtient les événements:

 <?php $tryone = query_posts(array('post_type'=>post, 'posts_per_page'=> 18)); ?>
 <?php $trytwo = query_posts(array('post_type'=>array(TribeEvents::POSTTYPE))); ?>
 <?php $all_posts = array_merge( $tryone, $trytwo ); ?>

 <?php query_posts($all_posts); ?>
 <?php while (have_posts()) : the_post(); ?>
 <p>stuff</p>
 <?php endwhile;?>
1
Paul Elliot

Je pense que vous utilisez le mauvais post_type pour les messages ordinaires.

$args = array('post_type'=>array('post', TribeEvents::POSTTYPE));  

// The Query
$the_query = new WP_Query( $args );

// The Loop
while ( $the_query->have_posts() ) :
    $the_query->the_post();
    echo '<li>' . get_the_title() . '</li>';
endwhile;

// Restore original Post Data
wp_reset_postdata();
3
helgatheviking