taxonomy-{ターム名}.phpにおけるページネーションの2ページ目以降が404になる
解決済
回答 2
投稿
- 評価
- クリップ 0
- VIEW 4,564
前提
Wordpressのカスタム投稿タイプのターム別のアーカイブページを作っています。
taxonomy-{ターム名}.phpにてページネーションを用いた1ページあたりの投稿表示数制限を実装しようとしています。
記事の表示方法は少し特殊で、カスタム投稿のカスタムフィールドにYoutubeの動画IDを入力させて、それをYoutubeのiframeで表示させるという形式になっております。
問題点
ですが、普通の記事一覧ページと同様の実装をしたところ、2ページ目からが404を吐いてしまっております。
コード
<?php
$args = array(
'posts_per_page' => 2,
'paged' => get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish'
);
$the_query = new WP_Query($args);
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<div class="media_info">
<iframe src="https://www.youtube.com/embed/<?php the_field('media_youtube'); ?>" frameborder="0" allowfullscreen></iframe>
</div>
<?php endwhile; endif;?>
<div class="clrfx"></div>
<div id="pagenation">
<?php
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'prev_next' => False,
'current' => max( 1, get_query_var('paged') ),
'total' => $the_query->max_num_pages
) );
?>
</div>
<?php wp_reset_postdata(); wp_reset_query(); ?>
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+2
pre_get_postsで書き換えてみてはいかがでしょうか。
【【wordpress】pre_get_postsを使ってみませんか? - Qiita】
http://qiita.com/_ruka_/items/e14280d34eddf49efad1#pre_get_postsのご提案
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
check解決した方法
0
こちらのように、WPの設定画面で表示件数を1件にしたら解決しました。
つまり、WP-PageNaviは query_posts() で指定した表示件数を元にページ数を計算しているのに、WordPress自体は表示設定の件数を元に計算していたため、「2ページ目は11件目から表示だろ? 無いね。よろしい、ならば404だ」と判断されてしまっていたのです。
表示設定を同じ【5件】に設定したら問題なく表示されました。
現在は下記のサイトを参考に【1件】に設定しています。
http://sygnas.jp/2012/04/02/wordpress%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%82%BF%E3%82%AF%E3%82%BD%E3%83%8E%E3%83%9F%E3%83%BC%E3%81%AE%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96%E3%81%A7404-notfound%E3%81%AB%E3%81%AA/
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2017/04/13 23:20
やってみたのですが、functions.phpに書き込んだあとに、該当ページのループのphpをどう書き換えればpre_get_postsで設定した内容で出せるのかがいまいちわかりませんでした。
また、別の方法にて自己解決できました。
ご回答頂きありがとうございます。
2017/04/13 23:25