【WordPress】特定のターム(term)が指定された記事だけ一覧から除外

query_postsを使って記事一覧を作成する際、登録したターム名「riru」を除外して「Kaito」だけの記事一覧を作りたい場合の抽出条件はこちら。

カスタム投稿タイプ名:ebicohouse
タクソノミー名:cat
登録ターム名:「kaito」「riru」

記事表示最大件数は20件でオーバー分はwp_pagenaviでページング。

こう書く。

function getEBICOHouse($atts, $content = null) {
 global $post;
 $oldpost = $post;
 $myposts = query_posts(
array(
 'posts_per_page' => '20',
 'post_type' => array( 'ebicohouse' ) ,
 'order'=>'DESC',
 'orderby'=>'post_date',
 'tax_query' => array(
 array(
 'taxonomy' => 'cat',//タクソノミーcatの
 'field' => 'slug',
 'terms' => 'riru', //ターム名riruを
 'operator' => 'NOT IN',//除外!
 ),
),
 'paged' => $paged
 ) );
 if(have_posts()):
 while ( have_posts() ) : the_post();
 $retHtml='<dl>';
 foreach($myposts as $post) :
 setup_postdata($post);
 $retHtml.='<dt>'.get_post_time('Y/m/d').'</dt>';
 $retHtml.='<dd><a href="'.get_permalink().'">'.the_title("","",false).'</a>&nbsp;';
 $days=14;$today=date('U'); $entry=get_the_time('U');$diff1=date('U',($today - $entry))/86400;
if ($days > $diff1) {
 $retHtml.= "\n" . '<span class="red">New!</span>' . "\n";}
 $retHtml.='</dd>';

 endforeach;
 $retHtml.='</dl>';

 if(function_exists('wp_pagenavi')) {
 ob_start();
 wp_pagenavi();
 $retHtml.= ob_get_clean();
}
 wp_reset_query();
 $post = $oldpost;
 return $retHtml;
 endwhile;
 endif;
}
add_shortcode("ebicokaito", "getEBICOHouse");

この記事にコメントを残す