sabucate1.jpg←エントリーの入っていないサブカテを作ったら、リストのインデントがなんだかおかしくなってしまって・・・。どうも、何もエントリー入っていないサブカテは表に表示しないようにしてるので、リストスタイルタグの開け閉めの出力がおかしくなったようで、こんなんなっちゃいました。(苦笑)


sabucate2.jpg←本来はこうあるべきで、見てのとおり非表示にしているサブカテの後がインデントされてしまってまつ。


こりゃー、ソースが悪いんだろうなぁということで、いつもお世話になってる小粋空間さんのところに確かサブカテに関するエントリーがあったのを思い出したので、並べてソースを確認してみました。案の定、間違っていたようなので、オリジナルとはコンテナタグが違いますが、ちょいちょいっと修正。で、オリジナルだと、サブカテゴリ内にエントリーが無い場合でも、サブカテゴリ名が表示されてしまっているので、<li>タグもちょいちょいといじって、サブカテゴリ内が空の場合、表示しないように修正しました。

以下、修正個所転記。

■変更前
 
<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryDescription></a> [<$MTCategoryCount$>] <$MTSubCatsRecurse$></li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTIfNonZero>
</MTSubCategories>


■変更後(赤字が訂正個所、青字が非表示制御)
 
<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryDescription></a> [<$MTCategoryCount$>]
<MTElse>
<li style="display:none;"><MTCategoryDescription>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3"></li>
<MTSubCatIsLast></ul></MTSubCatIsLast>

</MTSubCategories>


【追記:18:19】
一つ大きな問題が・・・。この方法だと親カテが空でサブカテにエントリーが入っている場合、親カテから表示されないという。どうすっかなー・・・。(苦笑)

【追記:2004.12.14】
yujiro さんより、ナイスなコメントいただきまして、親カテが空でサブカテにエントリーがある場合にも表示されるようにできました。いつもすみませーん。^^
MTの条件タグ <MTHasSubCategories> を使用し条件分岐させると・・・。
以下、転記しときます。

<MTElse>~</MTElse> の部分を
 
    :
<MTElse>
<MTHasSubCategories>
<li><MTCategoryDescription>
</MTHasSubCategories>
<MTHasNoSubCategories>
<li style="display:none;"><MTCategoryDescription>
</MTHasNoSubCategories>
</MTElse>
    :
 
へ変更。


ただーし、注意点が一点。
空の孫カテを作ると、空の孫カテは表示されないのですが、その上位の子カテは空であっても表示されてしまいます。単に条件分岐だけの問題なので、恐らく、同じように条件分岐させれが良いのでしょうが、最近子供を作ったばかりで、当分孫が出来る予定は無いのでこのまま放置。(笑)