Title: タームの一覧表示でのページナビ
Last modified: 2018年5月12日

---

# タームの一覧表示でのページナビ

 *  解決済 [mizugamiyuki](https://ja.wordpress.org/support/users/mizugamiyuki/)
 * (@mizugamiyuki)
 * [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/)
 * 質問失礼します。
 * 現在カスタム投稿のタームの一覧ページを作っているのですがページナビがどうしても
   上手く動いてくれません。
    症状としましては以下になります。 ①URLはhttp://shitsumon.
   co.jp/sample_cat/red/page/2になっているが1ページ目が表示される。 ②記事は全部で
   12個なので3ページ目までしかないはずなのに10ページ目までのページリンクが表示さ
   れている。 になります。 ページナビにはWp-Page-Naviを使用しております。 どこか
   にpagedを記述しないといけないのかもしれませんがどこに記述すれば、どのように記述
   すればいいのかわからない状態です。
 * WordPressの設定は
    1ページに表示する最大投稿数は「1」 パーマリンク設定は/%category%/%
   postname%/ カスタム投稿のタクソノミーはsample_cat タームのスラッグはred です。
 * ソースは下記になります。
 * taxonomy-sapmle_cat-red.php
 *     ```
       <ul>
       <?php
       $args = array(
       'post_type' => 'smaple',
       'posts_per_page' => 5,
       'tax_query' => array(
       array(
       'taxonomy' => 'sample_cat',
       'field' => 'slug',
       'terms' => 'red'
       )
       )
       );
   
       $domestic_post = get_posts($args);
       if($domestic_post) : foreach($domestic_post as $post) : setup_postdata( $post ); ?>
       <li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
       <?php if( has_post_thumbnail() ): ?>
       <?php the_post_thumbnail( 'thumbnail' ); ?>
       <?php else: ?>
       <img src="<?php echo get_template_directory_uri(); ?>/images/noimage.png">
       <?php endif; ?>
       <?php the_title(); ?>
       <?php the_excerpt(); ?>
       </a></li>
       <?php endforeach; ?>
       <?php else : ?>
       <li>表示する記事がありません。</li>
       <?php endif;
       wp_reset_postdata(); ?>
       </ul>
   
       <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
       ```
   
 * ご存知の方がいらっしゃいましたらご教授いただけますと幸いです。
 * よろしくお願いいたします。

8件の返信を表示中 - 1 - 8件目 (全8件中)

 *  [ishitaka](https://ja.wordpress.org/support/users/ishitaka/)
 * (@ishitaka)
 * [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/#post-227169)
 * こんにちは
 * メインクエリをカスタマイズ（pre_get_posts フック等で）するのでは駄目なのでしょう
   か。
 * functions.php に、
 *     ```
       function pre_get_posts_sample( $query ) {
       	if ( is_admin() || ! $query->is_main_query() )
       		return;
       	if ( $query->is_tax( 'sample_cat' ) ) {
       		$query->set( 'posts_per_page', 5 );
       	}
       }
       add_action( 'pre_get_posts', 'pre_get_posts_sample' );
       ```
   
 *  トピック投稿者 [mizugamiyuki](https://ja.wordpress.org/support/users/mizugamiyuki/)
 * (@mizugamiyuki)
 * [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/#post-227173)
 * ishitaka様
 * ご回答ありがとうございます。
 * functions.phpにご教授いただいた通りに記述（コピ－＆ペースト）しましたが何も変わり
   ませんでした。
 *  トピック投稿者 [mizugamiyuki](https://ja.wordpress.org/support/users/mizugamiyuki/)
 * (@mizugamiyuki)
 * [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/#post-227174)
 * ishitaka様
 * ご回答ありがとうございます。
 * functions.phpにご教授いただいた通りに記述（コピ－＆ペースト）しましたが何も変わり
   ませんでした。
 *  [ishitaka](https://ja.wordpress.org/support/users/ishitaka/)
 * (@ishitaka)
 * [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/#post-227175)
 * > functions.phpにご教授いただいた通りに記述（コピ－＆ペースト）しましたが何も
   > 変わりませんでした。
 * 提示のコードはサンプルです。そのままでは動作しません。判定条件（is_tax）や、is_tax
   で判定しているタクソノミー名（sample_cat）を実際のタクソノミー名に変更する等の
   変更が必要です。
    また、メインクエリをカスタマイズする方法なので、taxonomy-sapmle_cat-
   red.php も変更する必要があります。 まずは、元の archive.php 等をコピーして、taxonomy-
   sapmle_cat-red.php を作成しページネーションが正しく表示されるかどうか確認して
   みるといいかと思います。
 *  トピック投稿者 [mizugamiyuki](https://ja.wordpress.org/support/users/mizugamiyuki/)
 * (@mizugamiyuki)
 * [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/#post-227206)
 * ishitaka様
 * たびたびのご回答ありがとうございます。
 * ①URLはhttp://shitsumon.co.jp/sample_cat/red/page/2になっているが1ページ目が表示
   される。
    の問題はpagedを記述で何とかなりました。 あとは②の0ページ目までのページ
   リンクが表示されている。だけです。 ソースはこのように修正しました。
 *     ```
       $paged = get_query_var('paged') ? get_query_var('paged') : 1 ;
       $args = array(
       'post_type' => 'portfolio',
       'posts_per_page' => 5,
       'paged' => $paged,
       'tax_query' => array(
       array(
       'taxonomy' => 'portfolio_cat',
       'field' => 'slug',
       'terms' => 'cup'
       )
       )
       );
       ```
   
 * また、archive.phpは作っていないのですが、必ず必要でしょうか？
 *  [ishitaka](https://ja.wordpress.org/support/users/ishitaka/)
 * (@ishitaka)
 * [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/#post-227208)
 * メインクエリをカスタマイズするので、サブクエリ（get_posts）する必要はありません。
   
   まずは、元の archive.php 等をコピーして、taxonomy-sapmle_cat-red.php を作成し**
   ページネーションだけ**が正しく表示されるかどうか確認してみるといいかと思います。
 *  [ishitaka](https://ja.wordpress.org/support/users/ishitaka/)
 * (@ishitaka)
 * [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/#post-227209)
 * > archive.phpは作っていないのですが、必ず必要でしょうか？
 * 必要かどうかは一概には言えません。下記ページをご覧ください。
    [https://wpdocs.osdn.jp/テンプレート階層](https://wpdocs.osdn.jp/テンプレート階層)
 * まずは、最小限のコード（下記）でページネーションが正しく動作するか確認するといい
   かと思います。
 * functions.php
 *     ```
       function pre_get_posts_portfolio( $query ) {
       	if ( is_admin() || ! $query->is_main_query() )
       		return;
       	if ( $query->is_tax( 'portfolio_cat' ) ) {
       		$query->set( 'posts_per_page', 5 );
       	}
       }
       add_action( 'pre_get_posts', 'pre_get_posts_portfolio' );
       ```
   
 * taxonomy-portfolio_cat-cup.php
 *     ```
       <?php if ( have_posts() ) : ?>
       	<? while ( have_posts() ) : the_post(); ?>
       		<h2><?php the_title(); ?></h2>
       	<?php endwhile; ?>
       <?php endif; ?>
       <?php if ( function_exists( 'wp_pagenavi' ) ) { wp_pagenavi(); } ?>
       ```
   
 *  トピック投稿者 [mizugamiyuki](https://ja.wordpress.org/support/users/mizugamiyuki/)
 * (@mizugamiyuki)
 * [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/#post-227267)
 * ishitaka様
 * たびたびのご回答ありがとうございます。
 * 教えていただいたソースでページネーションが正しく動作するか確認したところ正常に
   動作しました！！
 * taxonomy-portfolio_cat-cup.phpのソースはすごくシンプルなんですね。
    でもシンプル
   にできるのはfunctions.phpに教えていただいたコードを記述するからなんですね。
 * 教えていただいたfunctions.phpのコードを掘り下げて勉強してみます！
 * この度は解決までお付き合いいただき誠にありがとうございました！

8件の返信を表示中 - 1 - 8件目 (全8件中)

 トピック「タームの一覧表示でのページナビ」には新たに返信することはできません。

## タグ

 * [カスタム投稿](https://ja.wordpress.org/support/topic-tag/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf/)
 * [ターム](https://ja.wordpress.org/support/topic-tag/%e3%82%bf%e3%83%bc%e3%83%a0/)
 * [ページナビ](https://ja.wordpress.org/support/topic-tag/%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/)
 * [page-navi](https://ja.wordpress.org/support/topic-tag/page-navi/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 7件の返信
 * 2人の参加者
 * 最後の返信者: [mizugamiyuki](https://ja.wordpress.org/support/users/mizugamiyuki/)
 * 最後の活動: [8年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e4%b8%80%e8%a6%a7%e8%a1%a8%e7%a4%ba%e3%81%a7%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8a%e3%83%93/#post-227267)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
