旧ブログの記事移行に失敗してたいへんなことになっていたこのブログですが、やっとこ復旧することができました。

MovableType形式のコンバートの挙動については、アップルップルさんとも情報共有して検証中です。いずれ失敗しない手順を記事にできればと思います。


a-blog cmsに移行後、このブログを見回ってみたところ
カテゴリー以外のアーカイブを経由して個別ページへ移動したときのURLが一定でない
現象に気付きました。

例えば、ひとつ前の記事のURLは
http://webbingstudio.com/weblog/webdesign/entry-289.html
なのですが、
2011年4月のアーカイブを経由したときは
http://webbingstudio.com/weblog/webdesign/entry-289.html/2011/04/
タグ「ablogcms」一覧を経由したときは
http://webbingstudio.com/weblog/webdesign/entry-289.html/tag/ablogcms/
と、URLコンテキストが後ろに加わった状態になっていました。

実際に表示されるページは全く同じなのですが、ちょっと気になります。

a-blog cmsのリファレンスを調べてみた結果、「Entry_Body」モジュールを一覧ページで使用した場合に起こるということが分かりました。

このブログは今のところ、a-blog cmsにデフォルトで入っているテーマ「vicuna」をカスタマイズして使っています。

vicunaはブログ用のテーマなので、一覧ページと個別ページを同じテンプレートで使い回していて、エントリー部分には「Entry_Body」モジュールが使われています。

「Entry_Body」モジュールの記事リンク部分は、a-blog cms公式のコードスニペットを見ると、{titleUrl}というモジュール変数が使われています。

<a href="{titleUrl}">{title}[raw]</a>

vicunaテーマもこのスニペットを踏襲しているので、同じ変数を使っています。

この変数の正確な役割はわかりませんが、{titleUrl}変数は個別ページ以外で利用すると、URLコンテキストの影響を受けて変動してしまうようです。
尚、{titleUrl}変数があるのはEntry_Bodyモジュールだけで、Entry_SummaryやEntry_Headlineではこの現象は起きません。

EntryBodyモジュールの変数表をきちんと読んでみるとわかりますが、このモジュールには別途、{permalink}という変数が設けられています。

{permalink}は名前の通り、どのアーカイブでも常にエントリー個別ページの固定URLを返します。

なので、先ほどのスニペットのコードを直して

<a href="{permalink}">{title}[raw]</a>

としてやれば、一覧ページでEntry_Bodyモジュールを使っても、URL変動は起きなくなります。

aloog cmsに含まれているテーマでは

  • plain
  • vicuna

で、この現象が起こります。

実務制作でテーマを作る場合は、一覧でEntry_Bodyモジュールを使うことは少ないと思いますが、念のためご注意ください。

この記事を書いた人

うぇびん

愛知県豊橋市に住んでいる、荒ぶるウェブおばさん。WordPressをはじめとした各種CMSを研究するのが好き。札幌のIT企業のビットスター株式会社に所属しています。