前提・実現したいこと
Wordpressでブログを構築しています。
現在、tag.php(タグテンプレート)とauthor.php(投稿者テンプレート)の2テンプレート内で、
10件記事を出力させていて、それ以上の場合はページャーで/page/2に飛ばそうでしてるところでつまづいてます。
ぞれぞれURLは以下のような形式です。
http://example.com/tag/タグ名
→http://example.com/tag/タグ名/page/2 (404エラー)
http://example.com/p/author/投稿者名
→http://example.com/p/author/投稿者名/page/2 (404エラー)
どうかご教授願います。
発生している問題・エラーメッセージ
ページャーのボタン等は生成される、URLも出力されているのですが、クリックすると404という状態です。
また/page/1/としても404になるので、そもそもページ分割(ページャーシステム)がうまく作動してない感じのようです。
該当のソースコード
php
1<?php 2// ループ 3$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 4 $tag_id = $wp_query->query_vars['tag_id']; 5 $args = array( 6 'tag_id' => $tag_id, 7 'posts_per_page' => 10, 8 'paged' => $paged, 9 'orderby' => 'post_date', 10 'order' => 'DESC', 11 'post_type' => 'post', 12 'post_status' => 'publish' 13 ); 14 $the_query = new WP_Query($args); 15 if($the_query->have_posts()) : 16 while($the_query->have_posts()) : $the_query->the_post(); 17 ?> 18// 19// 20// ループ内の処理 21// 22// 23 <?php endwhile; endif; ?> 24 25 26 27// ページャー 28<?php 29if ($the_query->max_num_pages > 1) { 30 echo paginate_links(array( 31 'base' => get_pagenum_link(1) . '%_%', 32 'format' => 'page/%#%', 33 'current' => max(1, $paged), 34 'total' => $the_query->max_num_pages 35 )); 36} 37?> 38<?php wp_reset_postdata(); ?>
試したこと
ダッシュボード内「1ページに表示する最大投稿数」は1にしてあります。
補足情報(FW/ツールのバージョンなど)
トップページやカテゴリーページはページャー動いています、、
11/23 18:47更新
$paged、$the_query->max_num_pages等は取得できてるようです。
htts://url.com/tag/tagslug/page/1にすらも404になってします。
htts://url.com/tag/tagslug/では一ページ目に該当する表示ができてます。
本来ならpage/1も一ページ目の表示が普通に見れるはずと認識しております。
つまり/page/を使ったそもそものところに不具合があるのかなと思います。(上記の通り$paged等は取得できているので)
11/23 21:16更新
なんとなく答えに近づいて来た気がしました。
functions.phpにカテゴリーページの/category/スラッグを消すため、以下の記述をしていた模様です。
このリライトルールがtag.php等に影響を及ぼしているような気がします。
これから調査しますが、何かわかる方は教えてください。よろしくお願いします。
functions.php
1add_filter('user_trailingslashit', 'remcat_function'); 2function remcat_function($link) { 3 return str_replace("/category/", "/", $link); 4} 5add_action('init', 'remcat_flush_rules'); 6function remcat_flush_rules() { 7 global $wp_rewrite; 8 $wp_rewrite->flush_rules(); 9} 10add_filter('generate_rewrite_rules', 'remcat_rewrite'); 11function remcat_rewrite($wp_rewrite) { 12 $new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2)); 13 $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; 14}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/21 16:04
2018/11/23 03:10