Movable Type
なぜかサブカテゴリーにするとメニューが変になるんです。
サブカテゴリーが設定できるようなった今度のMovable Type 3.11-jaなんですが、デフォルトで付いてくるダクセットにちょっと問題があるんですよ。NagaBLOGは、サブカテゴリーを設定する必要性が今の所無いので今回紹介する方法は施す事はないのてすが、お仕事で構築しているサイトで施しましたので、覚え書きも兼ねてエントリーします。
サブカテゴリーを設定できるようになったことで、1つのエントリーに複数のカテゴリーを設定になったんですが、これが曲者なんですよ。1つのエントリーに、複数のサブカテゴリーだけを設定する場合は、
●トップレベルカテゴリー ←リンク設定されていない
○サブカテゴリー ←リンク設定されている
○サブカテゴリー ←リンク設定されている
ページのカテゴリーメニューは上記のように表示され、ここらサブカテゴリーに移動すると
●サブカテゴリー ←リンク設定されている
●サブカテゴリー ←リンク設定されている
と、なり問題が無いのですが、1つのエントリーに、トップレベルカテゴリーと、複数サブカテゴリーを設定すると、トップレベルカテゴリーのページのカテゴリーメニューに問題が発生します。
●トップレベルカテゴリー ←リンク設定されている
○サブカテゴリー ←リンク設定されている
○サブカテゴリー ←リンク設定されている
と、なりますね。ここからサブカテゴリーに直接移動するのではなくて、トップレベルカテゴリーのページを経由してサブカテゴリーに移動しようとします。そこでまず、トップレベルカテゴリーのページに移動するわけですが、ここに表示されるカテゴリーメニューが変になっています。
●サブカテゴリー ←リンク設定が変になっているので移動できない
●サブカテゴリー ←リンク設定が変になっているので移動できない
んで、どういうアドレスになっているかというと、
https://naga-blog.com/archives/cat5/http://
naganaga.daa.jp/archives/cat5/cat6/index.html
なんで二重なんじゃいと、思わず突っ込んでしまいましたよ。タグ関係は全く同じなのにこの有様です。ということは、デフォルトのタグの書き方に問題があるのではないかと、直感がひらめいたわけです。
そこで、ググりましたよ。やっぱり、ありました、解決方法発見です。「詞織」さんの「MT3.1:副カテゴリーを表示するリスト」というエントリーです。詳細はこちらを読んで頂くとして、やっぱり睨んだとおりタグの書き方がおかしいようです。エントリーを参考にして、大将となる問題を解決していきましょう。まず、各テンプレートの下記の部分を探します。
<MTSubCategories> <MTSubCatIsFirst><ul></MTSubCatIsFirst> <MTIfNonZero tag="MTCategoryCount"> <li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"> <MTCategoryLabel></a> <MTElse> <li><MTCategoryLabel> </MTElse> </MTIfNonZero> <MTSubCatsRecurse max_depth="3"> </li> <MTSubCatIsLast></ul></MTSubCatIsLast> </MTSubCategories>
次に、この部分を下記のリストに変更します。
<MTSubCategories> <MTSubCatIsFirst><ul></MTSubCatIsFirst> <li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryLabel$>"><$MTCategoryLabel$> (<$MTArchiveCount$>)</a> <$MTSubCatsRecurse$></li> <MTSubCatIsLast></ul></MTSubCatIsLast> </MTSubCategories>
ただ、この方法に変更した場合、何も入っていないカテゴリーにもリンクが設定されてしまいます。もちろん、クリックして移動するとエラー画面が表示される訳です。まぁ、空のカテゴリーを設定しても仕方がないので、使うエントリーがあるまで、設定しないでおいても問題ないと思います。
とりあえず、制作中のサイトは、これで運用しようかと思っています。Movable Type関係の修正で時間を取られているのがきがかり、締め切りまでに間に合うのでしょうか。それにしても、Movable Typeのテンプレートはナカナカ一筋縄ではいきませんねぇ。