サポート » 使い方全般 » タームごとに分類してカスタム投稿記事一覧を表示し、ページ送りをつける

  • 「WordPressのカスタムタクソノミーの分類毎に記事を出力する方法」
    http://weble.org/2010/10/12/taxonomy-posts

    現在、WEBLEさんの上記サイトを参考に、タームごとの記事一覧をアーカイブページに作成していますが、
    ターム数が多く、また今後増える予定なので、ページ送りできるようにしたいと考えています。

    (例)ターム10件ごとにページ送りできるようにする。
    ———————–
    ターム1
     ターム1に投稿した記事
     ターム1に投稿した記事    
    :
    :
    ターム10
     ターム20に投稿した記事
     ターム20に投稿した記事
    ———————– 次のページへページ送り
    ターム11
     ターム1に投稿した記事
     ターム1に投稿した記事
    :
    :
    ターム20
     ターム20に投稿した記事
     ターム20に投稿した記事
    ———————–

    Wordpress初心者で、目下色々な方のサイト等を参考にさせていただきながら勉強中です。
    色々調べているのですがどうしてもわからず、ご相談させていただきました。
    ご教授いただけますよう、どうぞ宜しくお願い申し上げます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    固定ページで表示する方法はどうでしょうか?

    下記の場合を例に説明します。
    カスタム投稿タイプ: sample
    カスタムタクソノミー: sample_cat
    固定ページのスラッグ名: sample-list
    ページ毎のターム数: 3

    テーマの page.php テンプレートファイルをコピーして、page-sample-list.php テンプレートファイルを作成し、適当な場所に下記コードを追加します。

    <?php
    if ( get_query_var('paged') ) { $paged = get_query_var('paged'); }
    elseif ( get_query_var('page') ) { $paged = get_query_var('page'); }
    else { $paged = 1; }
    
    $number = 3; // ページ毎のターム数
    
    $terms = get_terms( 'sample_cat', array( 'offset' => ( ( $paged - 1 ) * $number ), 'number' => $number ) );
    ?>
    <?php foreach ( $terms as $term ): ?>
    	<h3><?php echo $term->name; ?></h3>
    	<ul>
    	<?php $my_posts = get_posts( array( 'post_type' => 'sample', 'numberposts' => '-1', 'tax_query' => array( array( 'taxonomy' => 'sample_cat', 'field' => 'term_id', 'terms' => $term->term_id ) ) ) ); ?>
    	<?php foreach ( $my_posts as $my_post ) : ?>
    		<li><?php echo get_the_title( $my_post ); ?></li>
    	<?php endforeach; ?>
    	</ul>
    <?php endforeach; ?>
    <nav>
    <ul class="pagenation">
    <?php if ( $paged > 1 ) : ?>
    	<li><a href="<?php echo trailingslashit( get_permalink() ) . user_trailingslashit( $paged - 1, 'single_paged' ); ?>">前ページ</a></li>
    <?php endif; ?>
    <?php if ( $paged < ceil( (int)wp_count_terms( 'sample_cat', array( 'hide_empty' => true ) ) / $number ) ) : ?>
    	<li><a href="<?php echo trailingslashit( get_permalink() ) . user_trailingslashit( $paged + 1, 'single_paged' ); ?>">次ページ</a></li>
    <?php endif; ?>
    </ul>
    </nav>

    なお、コードはエラー処理など行っていません。内容を理解した上で使用してください。多少の手直しは必要です。

    • この返信は5年、 7ヶ月前にishitakaが編集しました。
    トピック投稿者 himejiro

    (@himejiro)

    ishitaka 様

    アドバイスをくださり、ありがとうございます!
    すぐにお返事することができず大変申し訳ありませんでした。
    (モニターを見すぎたせいか変頭痛になってしまい・・・不甲斐なし、本当に申し訳ありません(汗;))

    固定ページにて試してみます!
    また結果をご報告いたします。

    取り急ぎ、ご返信のお礼までm(_ _)m

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「タームごとに分類してカスタム投稿記事一覧を表示し、ページ送りをつける」には新たに返信することはできません。