web-dev-qa-db-ja.com

Query_posts()とget_posts()を1つのクエリにまとめます

私はブログ用の通常の投稿とイベント用のカスタム投稿タイプ(eventsプラグインによって生成される)を使用するサイトを作成しています。両方をつかむために異なるクエリを使用しましたが、それらを1つのクエリに結合したいと思います。運なしでいろいろなことを試したことがあります。

これがブログのクエリです。

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

これがイベントのクエリです。

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

これを試したことがあるが、やはりイベントのみを受け取る。

 <?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

通常の投稿に間違ったpost_typeを使用していると思います。

$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