ブログのパーマリンクを変更しました


コーヒー

懸念のパーマリンクをついに変更

何も考えないでパーマリンクを設定した代償

WordPressでサイトを運営している方の誰しも、パーマリンクのパラメータを何にするかという難問にぶつかっていると思うのですが、実は自分その辺を深く考えもしないで、「/%category%/%post_id%」という形式でパーマリンクを設定していました。

これだと、構造的にわかりやすいパーマリンクになりますが、1つ欠点があります。

カテゴリを変更してしまうと、パーマリンクも変わってしまい、「永遠に変わらない」という意味のパーマリンクが根底から揺らぐことに…

このことに気づいたのはすでに記事を150近く書いた後だったため、パーマリンクに手が出せない状態に…

意を決して

しかし、このまま記事がふくれあがるとますます手を出す機会が失われると思ったので、1日中作業するつもりでパーマリンクの変更作業に挑みました。

今回適用するパーマリンクは「/%year%/%monthnum%/%postname%/」の形式。

多くのブログを参考にさせて貰ったのですが、案外「/%postname%/」を利用されている方がいらっしゃいまして、やっぱり自分で一意的な名称を付けた方が良いのかなと思いまして、年月を前に入れたのは、多少構造化っぽく見せるためです。
いきなり「/%postname%/」でもいいかなと思ったんですが、こちらを選択しました。

直面した問題

通常「/%postname%/」で引用されるのは、記事のtitleの部分です。
つまり、titleが日本語の場合、「/%postname%/」が日本語表示になる…と思いきや、日本語部分がエンコードされるので、びよーんと意味不明な長いURLになってしまいます。

そのため、記事に「スラッグ」と呼ばれる英名の仮名を付けてあげる必要があります。
うちのブログ記事執筆時点で256記事ありまして、それすべてに英名の仮名を付けるという非常に恐ろしい作業が待ち受けているのです。

ここが今回一番躊躇した点でした。

一括変換ができれば良いんですが、英名の仮名なので機械的に決めることができず、ある種の法則で簡単に名前を生成することがどうしてもできず、それっぽい英名を考えてひたすら入力する作業が必要になるという、気が遠くなる作業が必要でした。

それでも効率よく変換できる方法を見つけた

手動ではあるんですが、サクサク入力できる方法を見つけました。

クイック編集

記事一覧から、クイック編集を選択して、

クイック編集画面

スラッグを設定、エンターキーで確定。
これを記事分繰り返せば完成です。

簡単に描きましたが、これを256記事分すべて1日でやりました。
途中本当に死ぬかと思いました。
現実逃避もしました…
漫画読んだり。

あとはリダイレクト設定

上記の作業で、パーマリンクは変わりましたが、問題があります。
今まで自分はTwitterなどで、URL(短縮されたものだけれど)を流しています。
このままだと、過去のツイートを見てくれた人がURLをクリックしても「404」ページが表示されてしまいます。

そこで、昔のURLにアクセスが入ったら、新しいURLに301リダイレクトされるように設定しなくてはなりません。

WordPress用のリダイレクトプラグインを探したのですが、丁度良いのが見つからず、

【wordpressサイト限定】リダイレクトのための.htaccessへの記述を表計算ソフトとget_postsで効率化

こちらのブログを参考にさせていただきました。
こちらの方法を試したところ、ばっちり。
きちんと301リダイレクトができていました。

主夫さん、ありがとうございます。

これでやっとカテゴリーを自由に変更できる

今までパーマリンクの変更が怖くて手つかずのまま放置されてきたカテゴリーに手を入れることができます。
あーよかった。
でも、毎回パーマリンクの英名を考えるのが手間だなぁ…
途中何度か挫折しかかりましたが、何回かに分けて1日で作業を終えることができて良かったです。

まとめ

カテゴリーをパーマリンクに設定すると、場合によってはエライ目にあうので、パーマリンクを設定するときにはよくよく考えた方が良いですね。
ちょっと前までは、SEO的にはカテゴリーをパーマリンクに入れた方が階層構造になるからいいんだ!っていう説が有力でしたが、その説も何処に行ってしまったんでしょうか…
あんまり見かけなくなりましたね、この説。