• 固定ページで、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(); ?>
    • このトピックはmiwarock777が1年、 11ヶ月前に変更しました。
  • トピック「カスタム分類を利用した先頭固定表示を行いたい」には新たに返信することはできません。