【WordPress】類似URLへの自動補完リダイレクトを止める方法
WordPressでは存在しないページのURLにアクセスした際、類似ているURLが存在している場合は自動補完でその類似URLのページへリダイレクトする機能が備わっています。
しかし、この機能ありがたい機能ではありますが、URLが似ているだけで内容は全く違うページへリダイレクトしてしまう恐れもあります。
今回の記事ではこのWordPressの標準機能である類似URLへの自動補完リダイレクトを止める方法をご紹介します。
自動補完リダイレクトとは
まず始めにこの自動補完リダイレクトとはどのような挙動なのか見ていきましょう。
例えば以下のようなページが存在するとします。
https://example.com/works/
この時、間違って
https://example.com/work/
のように「s」を入力し忘れてしまった場合、本来であれば存在しないページなので404エラーとなるはずですが、自動で類似しているURLへリダイレクトしてくれます。
上のような例であれば間違って入力してしまったユーザーを正しいURLへと導いてくれるので凄くありがたい機能となりますが、全てが上の例のように上手くいくとは限りません。
ページ数が多ければば多いほどサイト内には内容は全く違うのに似ているURLが存在してくるかもしれません。
そのような場合、関係ないURLへリダイレクトされるのは避けたいですよね。
類似URLへの自動補完リダイレクトを止める方法
類似URLへの自動補完リダイレクトを止めるにはテーマ内のfunctions.phpに以下を記述します。
function stop_redirect_canonical( $redirect_url ) {
if( is_404() ) {
return false;
}
}
add_filter( 'redirect_canonical','stop_redirect_canonical' );
redirect_canonicalというフィルターフックに自作関数をひっかけることで自動補完リダイレクトを止めることが出来ます。
ページが存在しない場合の対応方法
自動補完リダイレクトを停止した場合、何も設定していなければユーザーには404エラー画面が表示されます。
ユーザーが存在しないページのURLへアクセスした場合の対応方法は以下の記事で解説していますので合わせて設定することをお勧めします。
まとめ
今回の記事では、入力したURLが存在しない場合、類似URLへ自動補完しリダイレクトしてくれる機能を止める方法のご紹介でした。