レンちゃんとペンタ

【プラグインなし】WordPressで特定のページをリダイレクトする方法

【プラグインなし】WordPressで特定のページをリダイレクトする方法

任意のページをリダイレクトする方法としては.htaccessの編集が一般的ですが、.htaccessってちょっと間違えるとサイト全体に不具合が起きたりするので、慣れてないと書き換えるのが怖いですよね。
ところがWordPressであれば、専用の関数を利用することで.htaccessを触らずにリダイレクトさせることができます。

この記事で分かること

  • WordPressのfunctions.phpでリダイレクトを設定する方法

    Webデザインとブログで豊かに引きこもる。

    レンちゃんとペンタ

    Webデザインは器。ブログは中身。
    「レンちゃんとペンタ」では、2つのスキルを掛け合わせて、
    おウチで豊かに楽しく暮らす方法をご紹介しています。

    リダイレクトはfunctions.phpで設定できます

    WordPressには、リダイレクト用の関数がちゃんと用意されています。

    ・他サイトへリダイレクトする場合:wp_redirect()
    ・同じサイト内でリダイレクトする場合:wp_safe_redirect()

    functions.php内でこれらの関数を使えば、自分の好きなページを簡単にリダイレクトさせことができます。

    wp_redirect():他サイトへのリダイレクト

    サンプル

    以下は「https://sakana.com/maguro/」から「https://fish.com/tuna/」にリダイレクトさせる例です。

    add_action('get_header', 'redirectFunc');
    
    function redirectFunc(){
      // ページのURLを取得
      $url = $_SERVER['REQUEST_URI'];
    
      // URLに「maguro」が入っていたら「https://fish.com/tuna/」にリダイレクトする
      if(strstr($url, 'maguro')){
        wp_redirect('https://fish.com/tuna/', 301);
        exit;
      }
    }
    

    コードの内容は以下の通りです。

    1.任意のページが表示されると、redirectFunc()関数を実行。
    2.redirectFunc()関数内で、ページのURLを調べる。
    3.URLに文字列「maguro」が入っている場合は「https://fish.com/tuna/」にリダイレクトする。

    301リダイレクトでも302リダイレクトでもOK

    コード内の「301」という表記は、301リダイレクトの場合の設定です。
    「301」を省略すると、302リダイレクトとして処理されます。

    301リダイレクトと302リダイレクトの違い

    // 302ダイレクトにする例
    if(strstr($url, 'maguro')){
      wp_redirect('https://fish.com/tuna/');
      exit;
    }
    

    wp_safe_redirect():同じサイト内でのリダイレクト

    サンプル

    「https://sakana.com/iwashi/」から「https://sakana.com/sanma/」にリダイレクトさせる例です。

    add_action('get_header', 'redirectFunc');
    
    function redirectFunc(){
      // ページのURLを取得
      $url = $_SERVER['REQUEST_URI'];
    
      // URLに「iwashi」が入っていたら「https://sakana.com/sanma/」にリダイレクトする
      if(strstr($url, 'iwashi')){
        wp_safe_redirect('https://sakana.com/sanma/', 301);
        exit;
      }
    }
    

    301リダイレクト / 302リダイレクトの設定は、wp_redirect()関数と同様の考え方です。

    301リダイレクトと302リダイレクトの違い:SEOへの影響は?

    ・301リダイレクト:ページを完全にお引越しして、URLを変更する場合に利用。
    ・302リダイレクト:諸事情で、ページのURLを一時的に変更する場合に利用。

    どちらを用いても、
    ・ユーザーから見た挙動は同じです(ただページが切り替わるだけ)
    ・変更前のURLが受けていたGoogleによるページ評価を新しいURLへ引き継ぐことができます。SEO対策として有効です。

    また、GoogleがURL移転をより早く認識してくれるのは301の方とされています。

    例えばページAから無関係のページBへ、ユーザーを強制誘導するような用途で使ってしまうと、サイト評価に悪影響が出る可能性があるので注意が必要です。

    1. Home
    2. 【プラグインなし】WordPressで特定のページをリダイレクトする方法

    Related Posts