top

親カテゴリにサブカテゴリ以下の記事数を合計して表示(2) 3.3~

親カテゴリにサブカテゴリの記事数も合計して表示させるには、SubCatCountプラグインを使うのが定番でした。しかしMT3.3~MT4以降は新しいタグや変数を使うことでプラグインなしでサブカテゴリ数も合計して表示させることができるようになっていました。

実はMT4から追加された新機能に関しては、以前にこちらのコメント欄でアイデアをいただいてたのですが、ダイナミック・パブリッシングではカウンター変数__counter__や__last__などが上手く動作しないので、なんとなくそのまま放置(^^;になっていました。が、別件で実験していたとき、別な書き方ならダイナミックでもサブカテゴリ数の合計を出すことができたのに気が付いたので、覚え書きしておきます。

*追記:この記事を書いた後になって、3.3からは<$MTEntriesCount$>というタグが追加されていたことに気が付きました。また4.2からはダイナミックでもカウンター変数_counter__が使えるようになったので、それも併せて「MTタグだけでサブカテゴリの記事数を合計して表示する方法をバリエーション毎に紹介」という形に修正・変更させていただきました。

●3.3~以降の全バージョンに有効

<MTEntriesWithSubCategories lastn="0">
<MTEntriesHeader><$MTEntriesCount$></MTEntriesHeader>
</MTEntriesWithSubCategories>

単純にただこれだけです。これを<$MTCategoryCount&>とまるっと差し替えるだけでいけます。
実際に使う場合は全部を一行で続けて記述して下さい(そうしないと無駄な空白が生じることがありますので)。

●4.1~から有効
4.1以降ならこういう方法も使えます。サムネイルリストと同じようにopモディファイアでサブカテゴリ記事まで含めて全部の記事にナンバー打って、MTEntriesFooterで一番最後の数字を取りだして、そのカテゴリの記事数としています。

<MTSetvar name="catcount" value="0">
<MTEntriesWithSubCategories lastn="0">
<MTSetVar name="catcount" op="++">
<MTEntriesFooter><MTGetvar name="catcount"></MTEntriesFooter>
</MTEntriesWithSubCategories>

これも実際に使う場合は全部を一行で続けて記述して下さい。

●4.2以降有効(ダイナミック時)
4.2からはダイナミックでも__counter__が使えるようになったので、こちらの方法でもいけます。
(静的生成では4.0から使えます)

<MTEntriesWithSubCategories lastn="0">
<MTEntriesFooter><$MTVar name="__counter__"$></MTEntriesFooter>
</MTEntriesWithSubCategories>

これも実際に使う場合は全部を一行で続けて記述して下さい。

なお、以上の3つの書き方なら、重複する記事はカウントしないので、SubCatCountプラグインよりも正確な記事数を取得できます。

補足&ちょっとコラム
MT使用歴が長いと、途中から追加された新しいタグに気付かず、これまでの習慣から「プラグイン=MT標準では出来ない機能」だと思いこんだままになってしまっていることが、ままあります。時々はタグリファレンスを見返して、思い込みを取り払うように心がけたいと思います(^^;。

<2008.7.9>
3.3から使えるケースと4.2から使えるケースも追記して修正。

 

トラックバックURL

トラックバックされる際にはこの記事へのリンクをお願い致します

コメント

こんばんは、TAEKOさん。
お久しぶりです。
lastn="0"って、今も動作しますか?使えなくなってないでしょうか?

こんにちは。
4.1なら、lastn="0" 動作してますよ。サムネイルリストもこれで動かしてるし、静・動どちらでも動いてます。all="1"はMT4になってから動かなくなってるみたいですが。
私などはlastn指定も面倒で、管理画面の記事表示数を0にする裏ワザで全件表示させちゃってます(^^;。

なるほど、そういう手が使えるんでしたか。
件数指定のときだけ、lastnやlimit使う方が、理解しやすいですもんね。

件数指定する時はどのみちlastn使いますから、管理画面の記事数指定って結局使われないことの方が多くて。それなら最初から「全件表示がデフォルト仕様」にしてしまった方がいいかなと。
便利で使いよいです。

TAEKOさん、初めまして。

カテゴリーをツリー表示した時、親に総数がでなかったので「どうするのか?」悩んでましたが、こちらのエントリーを拝見させて頂き、無事解決いたしました~。

プラグインを使わずにカスタマイズするのが好きなので、大変助かりました。有難うございます(@^0^@)。

>@Ranさん
こちらこそ初めまして。
私もなるべくプラグインには頼らずに標準のMTタグだけで実装するのが好きなんです。
MTタグならバージョンアップで使えなくなる心配もないですものね。
これからもよろしくお願いします。^^

コメントを投稿

 


 <注意>
 ご利用のブラウザ、設定ではコメントのプレビューおよび投稿はご利用になれません。
 コメント投稿の際はお手数ですがjavascriptをオンにして下さい。
 *javascriptオフのまま投稿ボタンを押すと送信内容が消えますのでご注意下さい。