サポート » 使い方全般 » 複数のカスタム投稿とカスタム分類を取得

  • 解決済 kleza

    (@kleza)


    いつも大変お世話になっております。

    カスタム投稿タイプを複数指定し、そしてカスタム分類も指定して
    ひとつのループで出力したいのですが、可能でしょうか?

    配列を組み合わせれば出来るかと思い下記のように
    書いてみたのですが、記事はありませんとなってしまうのですが。

    <?php
    	$args = array(
    	'post_type' => array('info-nicchu', 'info-ja'), /* 投稿タイプを二つ指定 */
    	'tax_query' => array(
    		array( /* 投稿タイプ「info-nicchu」が持つカスタム分類とタームを指定 */
    			'taxonomy' => 'info-course-category',
    			'field' => 'slug',
    			'terms' => 'jpcn',
    		),
    		array( /* 投稿タイプ「info-ja」が持つカスタム分類とタームを指定 */
    			'taxonomy' => 'info-category',
    			'field' => 'slug',
    			'terms' => 'info',
    		),
    	),
    	'paged' => $paged,
    	'posts_per_page' => '5'
    ); ?>

    アドバイス等いただけますでしょうか。

    何卒宜しくお願い申し上げます。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター gatespace

    (@gatespace)

    http://wpdocs.osdn.jp/関数リファレンス/WP_Query#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF

    「複数のカスタム分類の取り扱い:」を参照。

    relation 指定しないとダメなのでは?

    コメントありがとうございます。relationにORを指定したら挙動が変わりましたが、出力されるのは二つあるうちの(投稿タイプ)後者のみです。どちらも出力させたいのですが。

    <?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'
    ); ?>
    <?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(); // ループをリセット ?>

    gatespace様

    大変失礼しました。私のミスでした。(該当投稿を削除しており、それが原因で出力されてなかっただけでした)gatespace様のご指摘どおり、relationを指定することで解決出来ました。ありがとうございます。

    一応、該当コードを再掲しておきます。
    いつも本当にありがとうございます。

    <?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'
    ); ?>
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「複数のカスタム投稿とカスタム分類を取得」には新たに返信することはできません。