…タイトルなに言ってるかわかんない(笑)
要するにこんなことありませんか?
複数ページある投稿のURL
複数ページある投稿っていうのは投稿の中で
ブロックで「続きを読む」を入れたり
HTMLタグで <!–nextpage–> って入れたりすることで長くなりがちな投稿を2ページ以上に分割した場合になります。
例えばこのブログで言うとこの記事
東京から 福岡移住 した私が語ります もともと仙台出身である私が東京の職場を退職し、 福岡移住 したのが2012年6月。 あれから4年が経過しようとしています。 やっと語れる感じになってきたかな・・・っていうくらいの余裕が出来てきたので初心を忘れないうちにまとめておこうと思いました。 これから福岡に移住を考えている方の …
この記事は4ページに分割しています。
でも、5ページ目がないのにURLで指定した場合どうなるでしょう…
あ、普通にもとのURLに遷移された…あれw
通常は戻るみたい…ですね。あまり問題にならないのはそうゆうこと?
戻らない・・・場合、例えば /5 のままとかの場合、有効かもしれないコードがこれ。
※functions.php 等に追加記述する想定です。
function redirect_canonical_url(){
if( !is_page() ) return;
$http = is_ssl() ? 'https' : 'http' . '://';
$request_url = $http . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
$canonical_url = get_the_permalink();
// 取得したパーマリンク(本来のURL)とリクエストされたURLが相違する場合、取得したパーマリンクへリダイレクト
if ( $canonical_url !== $request_url ) {
wp_redirect( $canonical_url, 301 );
die();
}
}
add_action( 'template_redirect', 'redirect_canonical_url' );
説明
パーマリンク=canonical_url は
本当に5ページ目がある場合は
https://blog.gti.jp/post-6701/5
であるのに対し、本当は5ページ目が存在しない場合、リクエストURLとは別に
<link rel=”canonical” href=”https://blog.gti.jp/post-6701/”>
ってなってます。
それを利用し、相違した場合は「本来のURL」=パーマリンクにリダイレクトするようにします。
本当に5ページ目があればそのページのままで
なければ 本来のページにリダイレクト…
という処理を行います。
こういう問題があるサイトがあったんだけど…
ホントはなにか不具合がほかにある??
かもしれないけど…