top

リンク先がシャッフルする

メイン頁や個別エントリー頁からそのエントリーの属する月別頁やカテゴリ頁へのリンクを張るとき、普通は以下のようなタグを使うと思います。

<$MTEntryPermalink archive_type="Monthly">
<$MTEntryLink archive_type="Monthly"$>
<$MTCategoryArchiveLink$>
・・・・・

ところが、複数のブログを運営しており、たまたま他のブログに同じアドレスが存在すると、ブログIDが正しく認識されなくてシャッフル状態になってしまい、違うブログの月別頁やカテゴリ頁へ飛んでしまうことがあります。最初はダイナミックのバグか?と思っていたんですが、そうでもないみたいですね。仕様ですか?(^^;

この現象はブログ毎にアーカイブアドレスを違うものに設定することで回避できます。例えばアーカイブマッピングで、

ブログA  <$MTArchiveDate format="%Y_%m"$>.html
ブログB  <$MTArchiveDate format="%Y_%m"$>b.html
ブログC  archives/<$MTArchiveDate format="%Y_%m"$>.html

みたいにブログ毎に違うディレクトリを与えたり、名前の付け方を変えることで解消されます。
:3.3のダイナミックではこの方法でも解決されないようなので、以下の↓ように直アドレス決め打ちにするのがいいようです)

更に念を押すなら、リンク先を以下のように直アドレス決め打ちにすれば間違いないです。

<a href="<$MTBlogURL$>archives/<$MTArchiveDate format="%Y_%m"$>.html">月別頁</a>

さて、なんで今頃こんなことを書いているのかというと。あるテンプレートでカレンダータグの実験をしていたんですが、カレンダーのダイナミック特有のバグを見てたら「そういえばこんなこともあったな~」と思い出したもので。

■ダイナミック下のカレンダー考察 補足
3.2以前のダイナミック下でカレンダーが正常に生成されない一番の原因はカレンダータグ内の<MTEntries lastn="1">のlastn="1"にあります(*。なので、以下の条件を満たすならば、差し当たりlastn="1"を削除するだけで正常に動作するようになります。

 ・カレンダーの日のリンク先を個別エントリー頁ではなく日別頁にする
 ・複数のブログを運営していない
 ・日に複数のエントリーをしない

ブログが複数になったり、日にたくさん投稿するようになったら本格的にダイナミック用のカスタマイズをどうぞ~。

<2006.8.11追記>
(* 3.3のダイナミックではこのバグは解消されています。ただし複数ブログを運営している場合は使うタグによってはリンク先がシャッフルすることがあるので、ご注意下さい(こちらを参照)。