とっちゃん@nyanco! です。
今回はWordPressでプラグインを使わずに特定ページをリダイレクトさせる方法【コピペOK】です。
リダイレクトはプラグイン「Redirection」を使ったり、「.htaccess」に記述する方法もありますが、今回は「functions.php」に追記する方法となりますにゃ~
「functions.php」は記述を誤るとWebサイトが真っ白になって表示されなくなることもあるので、必ず作業前にバックアップをして自己責任のもと作業するようにしてください。
特定のページをリダイレクトさせる方法
「functions.php」に追記するコード【コピペOK】
wp_redirect() という関数を使用してリダイレクトさせていきます。
早速ですが「functions.php」に追記するコードはこちら。
add_action( 'get_header', 'specific_url_redirect' );
function specific_url_redirect(){
$url = $_SERVER['REQUEST_URI']; //現在のページのURLを取得
//URLに「redirect-page」という文字列が含まれていたらリダイレクト
if(strstr($url,'redirect-page')){
wp_redirect( 'https://xxxxx.xxx', 301 );
exit;
}
}
簡単にコードの内容を解説。
【1行目】’get_header’ … テンプレート header.php を読み込む直前に実行する意味。ページを表示する前に実行されるという認識で良さそう
【1行目】’specific_url_redirect’ … 任意の関数名。2行目以降で内容を定義
【3行目】コメントの通り、現在のページのURLを取得して $url に格納
【5行目】3行目で取得したURLの中に ‘redirect-page’ という文字列があれば次の 6行目 で指定した URL とステータスでリダイレクトを実行する条件分岐
【6行目】リダイレクト先の URL(任意のアドレスに変更してください) とステータスコード(ステータスコードは省略可能。省略した場合は初期値の「302」となり、前の「,」も不要となります)
ちなみに【6行目】で URL を指定している箇所は関数も使えるので、例えば wp_redirect( get_site_url(), 301 ); とするとサイトのTOPページにリダイレクトされるようになります。
get_site_url() はサイトのTOPページのURLを取得する関数ですにゃ~
これで、リダイレクトさせたいページのURL(スラッグ)に【5行目】で指定した文字列を含めるとリダイレクトさせることができるようになります!
「ステータスコード」とは?
一口にリダイレクトといってもいくつか種類があり、「ステータスコード」でその種類を指定することができます。
良く使われる2種類をざっくり解説。
- 301 … 恒久的なリダイレクト(サイト移転時など)
- 302 … 一時的なリダイレクト(メンテナンス中など)
301リダイレクトだとGoogleなどの検索エンジンにリダイレクト先へ評価を引き継ぐと言われており、ステータスコードはSEOに影響を与える重要な要素となってますにゃ〜
もっと詳しくステータスコードについて知りたい場合は、下記サイト様の記事が詳しくまとめられています。
リダイレクトwebチェッカー
指定したステータスコードでリダイレクトがされているか確認したい場合は、下記のwebツールを使うと簡単に確認できます。


参考にさせていただいたサイト様

ありがとうございますにゃ~
おわりに
プラグインはなるべく入れたくないけどリダイレクトさせたい!という方、「functions.php」に数行記述するだけ&仕組みが分かればカスタムも簡単なので、是非お試しください♪
本記事がどなたかの参考になれば幸いです。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント
ブログランキングから来ました。
PC初心者なので、参考にさせていただきました。
ありがとうございます。
肉玉にゃんこちゃん、可愛いですね♡
また、訪問させてもらいます。
ご訪問・コメントありがとうございます。
お役に立てたようで良かったです!
肉玉にゃんこ、かわいいやつなのでこれからもよろしくお願いします ♪
またご訪問いただけたら嬉しいです ^^