前の記事で、WordPressのパーマリンク構造を変更した話をしましたが、そのときに避けて通れないのが面倒なリダイレクト作業です。しかし、ExellやOpenOfficeなどの表計算ソフトとget_posts関数を使えば、リダイレクト作業はある程度効率化できます。
リダイレクトとは
リダイレクトは、あるURLへのアクセスを自動的に別のURLに転送する仕組みのことです。
サイトのコンテンツのURLを変更した際、以前のURLから現在のURLに転送する手段としてよく利用されます。
以前のURLから現在のURLにリダイレクトを行うには、以前のURLのドメイン直下に置いた.htaccessに、以下のような記述をしないといけません。
「Redirect permanent」+「半角スペース」+ (以前のURLのうち「http://ドメイン」を除いた部分)+「半角スペース」+ (「http://ドメイン」を含む現在のURL)
たとえば、http://example.com/test/start/のURLをhttp://example.com/end/goal/に変更したときは、http://example.com/.htaccessに以下のように記述します。
Redirect permanent /test/start/ http://example.com/end/goal/
このように、変更前のURLと変更前のURLを並べればいいので、リダイレクトの記述は簡単ですね。
ただ、変更前のURLには「http://ドメイン」を含まないことには注意しましょう。
作業用下書き投稿を用意
ここから、実際に作業に入ります。後々のためにパーマリンク構造変更前のURLを取得したいのですが、この作業は、下書きの投稿を作業台として行います。
作業台の作成
まず、管理画面で「投稿」→「新規追加」の順にクリックして「投稿の編集」画面に行きます。
次に、適当なタイトルをつけて「下書きとして保存」ボタンを押してください。
作業台のID
これで、作業台は完成です。このとき、作業台にしている下書き投稿の投稿のIDを確認しておいてください。IDはアドレスバーの?post=直後の数字です。以下の画像の例では、IDは755になります。
パーマリンク構造変更前の各投稿のURLを取得
次に、使用しているテーマのsingle.phpを、管理画面のテーマ編集やテキストエディタで開いてください。(single.phpがなければ投稿を表示するのに使うテンプレートファイルを開いてください。)
single.phpの末尾に以下のコードを貼り付けてください。
<?php if(is_single('○○')){?>
<ul>
<?php
global $post;
$args = array( 'numberposts' =>10000);
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>
<li><?php the_permalink(); ?></li>
<?php endforeach; ?>
</ul>
<?php } ?>
そして、「○○」を、先ほど確認したIDに書き換えて保存します。(テキストエディタで編集した場合はFTPアップロードも忘れないでください。)
そして、作業台にしている下書き投稿のプレビューを押すと、
パーマリンク構造変更前の各投稿URLの一覧リストが現れます。
このURLの一覧リストはすべてコピーしてください。
表計算ソフトにコピペ
ここで、表計算ソフトを立ち上げます。表計算ソフトは、ExellでもOpen OfficeでもGoogle Driveのスプレッドシートでもかまいません。
ここで表計算ソフトを使うのは、以下のような形でセルを埋めることで、リダイレクトの記述を効率的に作成するためです。
表計算ソフトが立ち上がったら、先ほどコピーしたURLリストをC1セル(一番上の行の左から3番目のセル)に貼り付けてください。
すると、以下のような感じになります。(画像はGoogle Driveのスプレッドシート)
置換機能で「http://ドメイン」を取り除く
次に、表計算ソフトの置換機能で「http://ドメイン」を取り除きます。
Google Driveのスプレッドシートを使っている場合は、「編集」→「検索と置換」の順にクリックすると以下のようなウィンドウが開きます。
検索:のところに「http://ドメイン」を入力し、置換:のところは空欄にします。
そして、「すべて置換」を押すと、「http://ドメイン」の部分(https://webshufu.com)がすべて消えます。
これで、リダイレクトの記述のうち、C列(以前のURLのうち「http://ドメイン」を除いた部分)については、完成しました。
Redirect permanentと半角スペースを挿入
リダイレクトの書式は以下の形でした。
C列が完成したので、A・B・D列を入力します。ただし、入力は、C列のセルに(以前のURLのうち「http://ドメイン」を除いた部分)が入力されている場合のみ行います。
- A列には「Redirect permanent」を入力
- B列・D列には半角スペースを入力
コピペなどを駆使するとあっという間に終わりますよね。すると、以下のように、リダイレクトの記述はE列を除いて完成します。
パーマリンク構造を変更
ここで、ワードプレスの管理画面に一旦戻って、パーマリンク構造を適宜変更します。
パーマリンク構造変更後の各投稿のURLを取得
パーマリンク構造変更後、作業台にしている下書き投稿のプレビューを再度表示し、最新の内容に更新してください。
すると、各投稿のURLの一覧が、パーマリンク構造の変更を反映したものになっているはずです。
このURLの一覧リストはすべてコピーしてください。
表計算ソフトにコピペ
コピーしたURLリストを表計算ソフトのE1セルに貼り付けてください。すると、リダイレクトの記述がほぼ完成します。(下の図はGoogle Driveのスプレッドシート)
.htaccessにコピペ
あとは、表計算ソフト上の記述を.htaccessにコピペするだけです。
リダイレクトの記述をすべてコピー
表計算ソフト上で、Ctrl(コントロール)キーとAキーを同時に押してリダイレクトの記述を全選択後、Ctrl(コントロール)キーとCキーを同時に押してコピーします。
.htaccessに貼り付け
テキストエディタで、新規ファイル作成を選択した後、Ctrl(コントロール)キーとVキーを同時に押して、コピーしておいた内容を貼り付けます。そして、.htaccessという名前をつけて、保存します。
.htaccessをドメイン直下にアップロード
最後に、保存した.htaccessファイルを、FTPソフトでドメイン直下にアップロードします。
これで、リダイレクトの記述が完成しました。