Movable Type4.1において、ユーザー表示名が日本語の場合、ユーザーアーカイブが生成できない現象とその回避方法について。サポートに問い合せたところ、再現性のある問題と認識しているということでしたが、WEBで検索しても出てこないので、困っている人もいるかと思い、アップしておきます。

複数のユーザーでブログを運営している場合、ユーザーごとにアーカイブを切り出す「ユーザーアーカイブ」という機能があります。その方法は「テンプレート」→「アーカイブテンプレート」→「ブログ記事リスト」を選び、以下の画面から「新しいアーカイブマッピングを作成」をクリックするわけですが。
0512a.jpg

ここで「ユーザー別」を選択して、新しいアーカイブマッピングを追加すると、以下の画面になります。
0512b.jpg

デフォルトで、「author-display-name/index.html」というアーカイブマッピングが作成されるのですが、これがうまく機能しないようです。以下、説明します。

author-display-name は、ユーザー名ではなくユーザー表示名のことを指します。このブログでは「JUN(全角)」がそうです。日本語でブログを作っている人なら、山田太郎とか殿馬一人とか、そういう全角、2バイト文字を表示名にしている人が多いと思うのですが、このauthor-display-nameは、ユーザー表示名が全角文字の場合まったく機能しないようです。また、サイドバーなどに切り出すアーカイブリストには、ルート直下のindex.htmlがリンクされます。

ただし、表示名が山田太郎RTなどという人ならば(いないと思いますが)、RTに着目して「root/RT/index.html」と生成してくれます。

これを回避するには、ユーザー名を表示するMTタグ MTAuthorName か、ユーザーID番号を表示する MTAuthorID を使います。ユーザー名は、つまりログイン名ですので、セキュリティ上これが見えるのはよくありませんから、MTAuthorID の方が無難かと思います。アーカイブマッピングで、「<$MTAuthorID$>/index.html」としてやると、root/ID番号/index.htmlとしてユーザーアーカイブを生成するようになります。