パーマリンク修復

WordPressの自動アップグレードをして異常なしと書いたばかりだが、やはりそう甘くはなかった。Recent Entriesのコーナーに表示されている記事題名から記事へのリンクが切れて、Error 404(該当ページなし)が表示されてしまうという指摘をもらったのだ。

初めはウィジェットの不調を疑った。というのも、この機能はウィジェットで設定していたからだ。同じような機能のプラグインを探して入れてみたが、どれもうまく働かなかった。

あれこれ調べているうちに、直近13件の記事のみ、パーマリンクがおかしなことになっていることに気づいた。これらの記事のみパーマリンクから年月日がすっぽり抜けてしまっていたのだ。こうしてURLが変わってしまったことが、Recent Entriesのリンクと齟齬をきたし、記事本体へ飛べなくなった直接の原因であろうと推測された。

パーマリンクとはWordPress上の各記事にふられる固有のURLのことだ。WordPressではスラッグともよぶのだが、パーマリンクという用語との使い分けの基準はよくわからない。

「散歩の思考」のばあい、もともとは、年月日のあとにつづけて各記事固有の記事名を手動で付す設定にしていた。たとえばこの記事のパーマリンクを例にとるのなら、http://swingbooks.jp/2010/08/17/recover_permalinks というのが、設定どおりに付されるはずのものだった。recover_permalinks の部分が記事名(postname)にあたり、これを記事投稿時にぼくが手動で付ける必要があった。で、そうしてきたはずだった。

年月日のあとに付ける記事名を自動で付す設定のままだと、記事題名をそのまま直接スラッグにとりこんでしまう。これだと具合が悪い。というのは、記事題名は大半が日本語でつけられるにもかかわらず、日本語文字をそのままスラッグにはできないからだ。そのため、WordPressは日本語文字を自動で変換して、英数字記号の複合したややこしいスラッグを生成してしまう。これだとURLを見ても人間には判読できず記事内容の推測ができないし、なによりURLがとんでもなく長くなって、やたらに煩雑になる。それを避けるため、記事の作成時に、英語かローマ字で記事内容のキーワードを手動で記事名に付けるようカスタム設定していたのである。

ところが、いつのまにやら、これが自動で日本語からスラッグを生成する設定になっていた。管理画面>パーマリンクの設定を確認すると、この設定自体が変更されてしまっていたのである。

そこでカスタムに再度変更して保存してみた。ちゃんと作業したつもりだったのが、どうやらしくじったらしい。Custom Permalinkというプラグインから再設定をしてみると、例の13件ぶんの記事のぜんぶのスラッグが、日本語から生成された英数字記号からなるややこしスラッグに変換されてしまった。

しかたがないので、管理画面>投稿から各記事ごとにスラッグを英語(もしくはローマ字)に手動で書き換えてみた。しかしそれだけでは不十分らしい。トップページに表示された題名をクリックしても Error 404 がでてしまう。Recent Entriesからも同様に、記事本体へは飛べず、Error 404 となる。

けっきょく、管理画面>投稿から各記事のスラッグを手動で書き換えるのにくわえて、管理画面>ツール>Meta-dataからスラッグを表示させ、そこで当該記事13件のスラッグ(年月日と記事名)をひとつひとつ手動で書き換えて保存してみたら、ようやくうまくいった。

現在は復旧しているが、いまもやはり、投稿時に編集画面でスラッグを手動で付けたと、Meta-dataでみると、日本語変換のややこしスラッグで表示されてしまう。ここであらためて英数字のスラッグに書き換えて保存すると、問題は生じないようだ。このあたり、ぼくの理解も不十分なので、もう少し検討してみたい。

いずれにせよ、今回の不具合の根本的な原因は不明のまま。WordPress3.0.1のせいなのか、スキン(Vicuna)との折り合いが悪いのか、自動アップグレードの影響なのか、たんにぼくが気づかぬうちに操作ミスをしていたのか。

なお作業のついでに、従来の Recent Entries という見出しを Recent Posts に変更してみた。WordPressでは投稿記事のことをPostとよぶらしい。