WordPressのカテゴリーを変更したときの対応をまとめました

WordPressのカテゴリー分けに頭を悩ませています。
サイトを作った当初はカテゴリー分け不要で、タグ付けだけしていれば記事を探せるかなと考えていました(カラーミーショップの記事ばっかりでしたし)。
これまでのカテゴリーは
- カスタマイズ(コーディング記事)
- コラム(コーディング以外)
今後の方針はサイト制作記事を幅広く増やし、量が増えてきたら大カテゴリーに昇格させていこうと考えています。
現時点でのカテゴリー分けは
- カラーミーショップ(探しやすいように子カテゴリーを作る)
- サイト制作知識(カラーミーショップ以外)
カテゴリー設定
一般的にカテゴリーは階層(親子関係)を作る場合に使います。タグに階層はありません。
WordPressのカテゴリーは階層に縛られないタグのような使い方もできて、柔軟にカテゴリーを設定できますが、(一応)階層が不要な分類はタグで行います。
カテゴリーはメニューに表示することが多いので、メニュー項目としてふさわしいかで決めてもよいと思います。
WordPressのカテゴリーは、ダッシュボード(管理画面)の「投稿>カテゴリー」で変更できます。
スラッグがカテゴリーのディレクトリ名に使われます。
親カテゴリーを設定をすると、階層が作れます。

パーマリンク設定
皆さんはWordPressnoパーマリンク(固定リンク)はどのように設定していますか。
当サイトでは以前まで、「naeco.jp/column/kiji-title」という風にカテゴリー名をパーマリンクに含めていました。
カテゴリーを変更したことで、パーマリンクも変更になりました。
WordPressのパーマリンクは、ダッシュボード(管理画面)の「設定>パーマリンク設定」で変更できます。
オーソドックスに「投稿名」で設定することにしました。
パーマリンクにカテゴリーを含めると、気軽に変更できないんですよね。
「変更を保存」ボタンを押すとすぐに変更されます。

リダイレクトする設定
パーマリンクが変更になると、記事の検索エンジンからのページ評価がなくなってしまいます。新パーマリンクへ評価を引き継ぐように、301リダイレクトを行います。
検索エンジン経由で訪問するお客様もページのリンク切れでがっかりすることがなくなります。
サーバーの.htaccessファイル内にリダイレクト設定を書きます。ファイルは通常WordPressをインストールしたディレクトリにあります。
検索するとリダイレクトの例文がいろいろと見つかりますので、探してみてください。
正規表現を使ってリダイレクト元、リダイレクト先を指定することが多いので、例文で不明な箇所は正規表現の解説サイトを読むとよいです。
ここでは、パーマリンクからカテゴリーを取り除いた新しいパーマリンクに飛ばす設定をします。
^が先頭、$は末尾を意味しています。
(.*)は正規表現でマッチングし、記事のスラッグを取り出しています。
上で取り出したスラッグを参照しています(後方参照といいます)。
# リダイレクト設定 2020.08.18
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^customize(.*)$ $1 [L,R=301]
RewriteRule ^column(.*)$ $1 [L,R=301]
</IfModule>
内部リンクのリンク先修正
記事内に自分の記事を埋め込んでいることも多いと思います。
パーマリンクを変更した場合は、内部リンクの修正も必要です。

おわりに
パーマリンクにカテゴリーを含めているといろいろと作業が発生しますので、いざカテゴリー変更となるとめんどくさいことになります。
私がWordPressをインストールした直後には全然考えていませんでしたが、パーマリンク(固定リンク)はあとから変更しないで済むようにしておくほうがいいです。
記事数が増えるとパーマリンクのダブりを気にする必要が出てくるかもしれませんが、ふつうは大丈夫でしょうかね。
パーマリンクさえちゃんとしていれば、自分の書いた記事の傾向をみてカテゴリー分けすればいいですよね。
執筆者

えいじ@naeco.jp この記事を書いた人
自作するのが好きですぐに試したくなる、凝り性なWebエンジニア。
カラーミーショップ、モールなどのECについて記事にしています。
ご相談・お問い合わせはこちら