複数のカスタム投稿及びカスタム分類を指定してひとつのループで出力@WordPress
異なるカスタム投稿、カスタム分類を複数指定して同じループにまとめて出力する例です。
配列のpost_typeで投稿タイプを指定。(複数の場合にはカンマ区切りで)
tax_queryでrelationはORを指定し、taxonomy、field、termsでカスタム分類を指定しています。
本題とは関係ありませんが、投稿タイトルの文字数を指定して、指定した文字数以上は丸める処理も記述していますので、不要であればこの処理はなくして、普通にタイトルを出力させます。
<?php $args = array( 'post_type' => array('info-nicchu', 'info-ja'), /* 投稿タイプを指定 */ 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'info-course-category', /* 指定したい投稿タイプが持つカスタム分類を指定 */ 'field' => 'slug', 'terms' => 'jpcn', /* 指定したカスタム分類が持つタームのスラッグを指定 */ ), array( 'taxonomy' => 'info-category', /* 指定したい投稿タイプが持つカスタム分類を指定 */ 'field' => 'slug', 'terms' => 'info', /* 指定したカスタム分類が持つタームのスラッグを指定 */ ), ), 'paged' => $paged, 'posts_per_page' => '5' /* 5件を取得 */ ); ?> <?php query_posts( $args ); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); /* ループ開始 */ ?> <dl> <dt><a href="<?php the_permalink(); ?>"><?php echo get_post_time('Y年m月d日'); ?></a></dt> <dd><a href="<?php the_permalink(); ?>"><?php if(mb_strlen($post->post_title)>30) { $title= mb_substr($post->post_title,0,30) ; echo $title. … ; } else {echo $post->post_title;}?></a></dd> </dl> <?php endwhile; ?> <?php else : ?> <dl> <dt>記事がありません</dt> <dd>表示する記事はありませんでした。</dd> </dl> <?php endif; ?> <?php wp_reset_query(); // ループをリセット ?>