WordPressブログで、特定のページへのアクセスを別のページ(やサイト)にリダイレクトする方法をご紹介します。
以前に.htaccessによるリダイレクト方法について紹介させていただいたんですが、今回はwp_safe_redirect
やwp_redirect
のWordPressのリダイレクトの関数を使い、テーマファイル(PHP)を編集してアクセスを転送させる方法です。
ブログトップへのリダイレクト(wp_safe_redirect)
WordPressブログのTOPページへリダイレクトさせる場合は、wp_safe_redirect
関数を使って、home_urlへリダイレクトさせます。
ステータスコードを省略してますが、初期値は302なので、指定しないと302リダイレクトになります。
なお、リダイレクトで使われる主なステータスコードは以下の通りです。
ステータスコード | 意味と使い方 |
---|---|
301 | 恒久的な移転(もう旧URLには戻らない前提) |
302 | 一時的な移転(やがて旧URLに復旧する前提) |
503 | サービス停止中(メンテナンス画面を一時的に出す場合) |
404 | Not Found(ページが存在しない場合) |
別のサイトへ301リダイレクト(wp_redirect)
WordPressブログ以外の別のサイトへ301リダイレクトさせる場合は、wp_redirect
関数を使います。
ステータスコードは、URLの後ろにカンマで区切ってコードを入力します。
wp_safe_redirectとwp_redirectの違い
wp_safe_redirectは、リダイレクトの前にリダイレクト先のURLが許可されたホストを使っているかチェックします。リダイレクト先が無効なURLの場合は、wp-adminかsiteurlへリダイレクトされます。
同じWordPressブログ内であれば、URLは有効且つ安全なので、wp_safe_redirectでのリダイレクトで転送してあげることができます。
しかし、外部サイト(別URL)へのリダイレクトについては、wp_safe_redirectだと完全にリダイレクトできない場合があるので、wp_redirectを使う方が確実です。
ということで、違いをまとめるとこんなイメージです。
wp_safe_redirect | 同じWordPressブログ内の別ページへリダイレクト |
---|---|
wp_redirect | 他のURLへのリダイレクト |