カスタム分類を利用した先頭固定表示を行いたい
-
固定ページで、WP_Queryでカスタム投稿とカスタム分類で絞り込みをして、
先頭固定記事があってもなくても5件表示となるようにしたいです。下記のようなコードを書きましたが、先頭固定記事があってもなくても5件表示にはなるものの、
すべてのカスタム分類で先頭固定した記事が出てくる状態です。カスタム投稿「POST_AAA」で、カスタム分類「TAX_BBB」の「TERM_CCC」に属する記事のうち、
先頭固定した記事だけ…という絞り込みをしたいのですが、絞り込みが効きません。tax_query の中身の書き方がまずいのか、そもそもの書き方が違うのか、、、
いろいろ調べてはみるものの、該当するような記事やページに出会えず、
こちらに書き込みさせていただきました。ご教示いただけると有り難いです。下記のコードでは、
- カスタム投稿名→ POST_AAA
- カスタムタクソノミー名→ TAX_BBB
- ターム名→ TERM_CCC
と仮定しています。
尚、カスタム投稿ではデフォルトで先頭固定が使えないので、
「Sticky Posts – Switch」のプラグインを追加しています。<?php $list_cnt = 5; //表示させたい記事の合計件数を設定 $sticky = get_option('sticky_posts'); //先頭固定の記事の表示はここから if ( !empty($sticky) ) $list_cnt -= count($sticky); //先頭固定の記事がある場合は、その件数から「$list_cnt」の値を引いています if ( count($sticky) > 0 ): $the_query = new WP_Query(array( 'post_type'=> 'POST_AAAA' , 'post__in' => $sticky, 'tax_query' => array( array( 'taxonomy' => 'TAX_BBB', 'field' => 'slug', 'terms' => array('TERM_CCC'), 'operator' => 'IN' ), ), ));?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> 〜ここに、TERM_CCCの記事のうち、先頭固定した記事が並ぶ〜 <?php endwhile; ?> <?php endif; ?> <?php if ( $list_cnt > 0 ): //先頭固定以外の記事の表示はここから $the_query = new WP_Query(array( 'post__not_in' => $sticky, 'post_type'=> 'POST_AAA' , 'posts_per_page' => $list_cnt, 'ignore_sticky_posts' => 1, 'tax_query' => array( array( 'taxonomy' => 'TAX_BBB', 'field' => 'slug', 'terms' => array('TERM_CCC'), 'operator' => 'IN' ), ) ));?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> 〜ここに、TERM_CCCの記事のうち、先頭固定していない記事が並ぶ〜 <?php endwhile; ?> <?php endif; ?> <?php wp_reset_postdata(); ?>
- トピック「カスタム分類を利用した先頭固定表示を行いたい」には新たに返信することはできません。