≪ MT3.1:副カテゴリーを表示するリスト | ウェブログ | MT3.1:主カテゴリーだけ表示する ≫

2004年11月15日

MT3.1:副カテゴリーリストのテンプレート例

 「MT3.1:副カテゴリーを表示するリスト」を公開した後に、「なぜかサブカテゴリーにするとメニューが変になるんです。」(NagaBLOGさん)からのトラックバックをいただきました。具体的なシチュエーションもどうやら異なっているみたいで、「こうすればこのように表示される」と一般化するのは難しいみたいですね。しばらくは実験報告を続けてみようと思います。
 そこで今回は、いくつかのテンプレート例を示して、ここ「詞織」でどのように表示されたかを解説してみたいと考えます。

 前回の時点で書いたテンプレートでは、以下のように表示されました。
subcategories001a.jpg

<MTSubCategories> <MTSubCatIsFirst><ul></MTSubCatIsFirst> <li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryLabel$>"><$MTCategoryLabel$></a> (<$MTArchiveCount$>)<$MTSubCatsRecurse$></li> <MTSubCatIsLast></ul></MTSubCatIsLast> </MTSubCategories>


 そもそもコンテナタグ<MTCategories>やコンテナタグ<MTArchivelist>は、所属する記事をまだ持っていないカテゴリーを表示しないようになっています(表示させたい場合、アトリビュートshow_emptyを設定する)。ところがコンテナタグ<MTSubCategories>の場合、この空カテゴリーが表示されてしまいます。私はとりあえず空カテゴリーを削除してこれに対応しています。

 と書きましたが、これは条件タグ<MTIfNonZero>を使用することで対応できます。

 <MTIfNonZero>はMovableTypeの公式マニュアルにはなぜか載っていないタグですが、ターゲットの数がゼロの場合とそうでない場合の条件分岐を設定してくれるものです。このタグについては、HINAGATAさんが詳しく説明してくれています。

 マニュアルに無いMTIfNonZeroタグ[HINAGATA]

 上記の解説を参考にしてテンプレートを書いてみると、NagaBLOGさんの記事中に示されたうち、上のほうの記述になると思います。
subcategories001b.jpg

<MTSubCategories> <MTSubCatIsFirst><ul></MTSubCatIsFirst> <MTIfNonZero tag="MTCategoryCount"> <li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"> <MTCategoryLabel></a>(<$MTArchiveCount$>) <MTElse> <li><MTCategoryLabel> </MTElse> </MTIfNonZero> <MTSubCatsRecurse max_depth="3"> </li> <MTSubCatIsLast></ul></MTSubCatIsLast> </MTSubCategories>


 そこでこの未リンクのカテゴリーラベルを表示させたい場合はこのままで。隠したい場合はMTCategoryLabelを削除するなり、スタイルdisplayで隠すなりすることですっきり表示させることができます。
subcategories001c.jpg

<MTSubCategories> <MTSubCatIsFirst><ul></MTSubCatIsFirst> <MTIfNonZero tag="MTCategoryCount"> <li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryLabel$>"> <MTCategoryLabel></a>(<$MTArchiveCount$>) <MTElse> <li style="display:none;"><MTCategoryLabel> </MTElse> </MTIfNonZero> <MTSubCatsRecurse max_depth="3"> </li> <MTSubCatIsLast></ul></MTSubCatIsLast> </MTSubCategories>


 現在のところ、「詞織」では最後の書き方でカテゴリリストを表示しています。これら3つの記述法は、おそらくはそれぞれに長所短所を持っているのではないか?と思われるのですが、検証するには至っていません。
 ただこの記事を書いている時点では、NagaBLOGさんが直面した問題を解決する糸口は何も見つかっていないんですよね。わたしは今まで、基本的にトップページにしかこのリストを表示していませんでしたし…。興味のある方は、上記リンク先を参照してください。
 また「下書き」状態のエントリがカウントされてしまうという問題も、現状ではまだ解決していません。この問題も引きつづき調べていきたいと思ってます。

作成者 フルカワマサユキ

トラックバック

このエントリーのトラックバックURL:
http://www.siolli.com/cgi/mt/mt-tb.cgi/79

この一覧は、次のエントリーを参照しています: MT3.1:副カテゴリーリストのテンプレート例:

» MT3.1x 階層表示で目次作り(その2) from 独り言Place
(*^∇^*)サブカテゴリー作りに非常に役立ちました。 CSSのボーダーレフトも参考させて頂きました。ありがとうございます〓(*- -)(*_ _)ペコリ [詳しくはこちら]

» ブログいじり from Macutie
ずっとカテゴリを階層化したくて、ココ見て変更しました。 思うようにいってスッキリ... [詳しくはこちら]

» カテゴリの階層表示 from K blog
Movable Type 3.1にアップグレードした理由がこれ。 さっそくググって人様のサイトを参考にテンプレートを修正しました。こちらのサイトも、元々は別のサ... [詳しくはこちら]

» 空のサブカテゴリーのリンク切れ問題解決しました。 from Naga BLOG
先日、「詞織」さんの「MT3.1:副カテゴリーを表示するリスト」のエントリーを参考にしてサブカテゴリーのリンクの問題を解決したんですが、何も入っていないカテゴリ... [詳しくはこちら]

» カテゴリー一覧の表示用タグを変更 from お小遣いへの近道
  カテゴリ一覧表示部分を利用させていただいているテンプレートから 変更しました... [詳しくはこちら]

» 作成、カスタマイズに当たってお世話になったサイト from Idle Lab. Blog Sec.
ようやく納得のいく形になってきたこのblogですが、ここまでで色々参考にさせて頂... [詳しくはこちら]

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)