質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

解決済

WordPressでページネーション2ページ目が404エラー

kota1010
kota1010

総合スコア59

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

2回答

0評価

0クリップ

23239閲覧

投稿2018/06/08 18:02

編集2018/06/10 10:47

WordPressのページネーションで404エラーは頻出ネタで自分なりに調べてみましたが解決しないのでこちらでお尋ねします。

現状は以下のようなURL構成です。

トップページ:ドメイン名(使用テンプレート:front-page.php)
ブログのトップページ:ドメイン名/blog(使用テンプレート:home.php スラッグ:blog)
投稿記事:ドメイン名/blog/カテゴリー/記事ID (使用テンプレート:single.php)
カテゴリーページ:ドメイン名/blog/カテゴリー (使用テンプレート:archive.php)

パーマリンク設定は

ドメイン名/blog/%category%/%post_id%

カテゴリーベースは空欄です。

プラグインのYoastSEOの設定でカテゴリーベースの「category」を削除しています。

この状態で、URL構成は実現できていますが、カテゴリーページのページネーションの2ページ目が404となります。

ドメイン名/blog/category/page/2

が404、ということです。

ブログ記事アーカイブの2ページ目はちゃんと表示されます。

YoastSEOのカテゴリーベース設定をオフにして、こちらの記事(https://web-tech-blog.com/wordpress/wp-pagenavi_permalink_notfound.html)を参考に、functions.phpに以下のソースを記述すると、カテゴリーの2ページ目はちゃんと表示されますが、ブログ記事の2ページ目が404になります。

php

function catbase_function($link) { return str_replace("/category/", "/", $link); } function catbase_flush_rules() { global $wp_rewrite; $wp_rewrite->flush_rules(); } function catbase_rewrite($wp_rewrite) { $new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2)); $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; } add_filter('user_trailingslashit', 'catbase_function'); add_action('init', 'catbase_flush_rules'); add_filter('generate_rewrite_rules', 'catbase_rewrite');

こうすると、ドメイン名/blog/page/2

が404になります。

使用テーマはunderscoreを独自カスタマイズしたのですが、archive.phpのループ部分とページネーションはオリジナルのままです。

php

<?php if ( have_posts() ) : ?> while ( have_posts() ) : the_post(); ?> ループ処理 <?php endwhile; the_posts_navigation(); else : get_template_part( 'template-parts/content', 'none' ); endif; ?>

1ページ内の表示記事数は設定>表示設定で10にしたあるままです。

これは問題はソースやプラグインではなく、こちら(https://osha-kimi.com/memo/custompost-pagination/)にあるようにblogのトップと個別記事のURLがダブってしまうのが原因なのでしょうか。

しかしいまやろうとしているURLの構成はごく普通のものだと思うのですが、これを実現しつつ、ページネーションの2ページ目以降も404にならないようにするには一体どうしたらいいのでしょうか。

どうかどなたかおわかりの方、ご教授よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。