2017.09.26
WordPress
WordPressで404ページを表示せずに任意のページへリダイレクトさせる方法
WordPressを利用しているサイトでは、存在しないページへユーザーがアクセスしようとしたとき、通常は404ページに自動で飛びますが、それを他のページにリダイレクトさせる方法を紹介します。
404ページを作ってあることがサイト制作では好ましいですが、クライアントからの依頼や何らかの理由で404ページを作成できない、あるいはすぐに表示できない場合などに、TOPページや別のページにリダイレクトさせたいときに利用できます。
通常のリダイレクト
実装方法ですが、functions.php
にコードを追記することで実装します。
下記は404ページが表示される場合にTOPページへ自動でリダイレクトさせる場合のコードです。
function 404page_to_home() { if( is_404() ){ wp_safe_redirect( home_url( '/' ) ); exit(); } } add_action( 'template_redirect', '404page_to_home' );
home_url( '/' )
部分がリダイレクト先を指定する部分です。他のページを指定したい場合は、この部分を必要なものに書き換えて利用してください。
ステータスコードを反映したリダイレクト
リダイレクト時のステータスコードを任意で指定することもできます。サイトリニューアル時などで元のURLのページ評価を引き継ぎいで301リダイレクトさせたい場合などには、以下のようにコードを記述します。
function 404page_to_home() { if( is_404() ){ wp_safe_redirect( home_url( '/' ), 301 ); exit(); } } add_action( 'template_redirect', '404page_to_home' );
home_url( '/' ), 301
部分がその記述です。シンプルな記述で実装できます。
まとめ
リダイレクトといえばhtaccess
を編集する場合が多いですがサーバーの都合や何らかの理由で編集できないときなどに上記の方法を覚えておくと役に立つことがあるかもしれません。
実装も簡単なので機会があれば実用してみてください。