Home > Internet > Movabletype > 子カテゴリのエントリーを含むアーカイブ

子カテゴリのエントリーを含むアーカイブ

スタティック・パブリッシング時に、親カテゴリ・アーカイブ内に子カテゴリのエントリーを含むようにした場合、通常子カテゴリへエントリーを投稿しても、親カテゴリの再構築は行われません。

MT3.2まではParentCategoryRebuildというプラグインで、これが解決できていたのですが、MT3.3になってこのプラグインが動作しなくなりました。

今回ダイナミックパブリッシングに切り替えた事で、そもそも再構築という概念が無くなり、プラグイン抜きで同様の事が出来るようになりました。

実際には親カテゴリのアーカイブに、子カテゴリのエントリも含まれるよう、MTEntriesタグ部分をMTEntriesWithSubCategoriesと置き換えてみました。最初はうまく動かなかったんですが、categoryアトリビュートにカテゴリー名を指定する事で、そのカテゴリー以下のエントリーを表示することが出来るようになりました。

しかし、これには若干の見落としがありました。

そもそもカテゴリーは、標準では分割されずに巨大なアーカイブになりがちです。このサイトの「MovableType」カテは現在164エントリー、その親カテの「Web」はなんと231にもなります。

それで、通常はアーカイブを分割する訳ですね。ただしダイナミックパブリッシングには通常のPerl用プラグインは使えません。じゃぁ分割できないかというと、ちゃんと救いの神はいるんです。
WingMemo: ダイナミック・パブリッシングで頁分割(4) バリエーション編

つまり、ダイナミックパブリッシングは、そもそもSmartyテンプレートを使っているので、こういうのには向いてるんだよって話みたい。で、早速参考にしてページ分割。

ところがですねぇ、確かにページ分割はうまくいったんですが、親カテゴリーを表示したらなぜか分割表示部分が出てこないんです。最初のページのみ。子カテゴリーは問題ないのにナゼ?・・・

気になってテンプレート眺めてたら、はたと気づきました。
そうか、ページ分割はカテゴリー内のエントリー数を元に、行われるんだ。親カテゴリー自身のエントリーは実際には1、2エントリー程度なので、ページ分割の対象にならなかったんです。子カテゴリーまで含んだエントリー数を渡すはずが、親カテゴリーのエントリーしか渡してなかった。
つまり、ページ分割されないのではなく、ナビゲーションが表示されなかったわけですね。

さぁ、そこで困りました。今までサブカテゴリーまで含んだエントリー数って、プラグインで済ませてたんです。Smartyでこういうコードどう書くんだろう?

今は結局ここで、煮詰まってます。<MTHasSubCategories><MTSubCategories>~
</MTSubCategories></MTHasSubCategories>で合計して渡せば良さそうな気はするのですが・・・
どなたか、なんか良い方法教えてください。

ping a Trackback

TrackBack URL for this entry.(1)

Comments:(2)

TAEKO`s user-pic TAEKO said February 2, 2007 5:56 PM | ReplyThis!

こんにちは。いろいろ修正お疲れ様でした。
コメントをいただいた時はよく分からなかったのですが、こういうことだったのですね。テンプレートタグとエントリータグを勘違いしていたみたいです。

で、<$MTCategoryCount$>を<$MTSubCatCount$>に変えたいのなら、できると思います。以下の頁が参考になると思います。
http://taeko.w-museum.com/wing/200608081156.html

この例では静的生成させた<$MTArchiveCount$>を各アーカイブに読み込んでいますが、同様にカテゴリーテンプレートを新たに作り、<$MTSubCatCount$>とだけ記入して数字だけのファイルを作り、アーカイブマッピングでアドレスを定めて分割コードの<$MTCategoryCount$>が来るべきところを<$MTInclude>に置き換えて読み込むわけです。
例では{{fetch file="・・を使ってますが、<$MTInclude>でもいけます。アーカイブ頁ではプラグインを使って静的生成させた「投稿のあった月の総数」を<$MTInclude>で読み込んで半年単位で頁送りしてますので。

時間ができたら私も実験してみようと思います。
外していたらすみません。

oscar`s user-pic oscar replied for TAEKO's comment February 2, 2007 7:41 PM | ReplyThis!

こんにちは、TAEKOさん。
そうか、最初は意味解らなかったんですが、じっくり眺めてなんとなく解ったかもしれません。
別なファイルの中身をテンプレート内に展開して、それをキャプチャするって事なのですね。
なるほど。

どうもありがとうございます。週末に試してみます。

スクリプトの読み込みが完了していません。

Sign in Sign in Sign in

メールフォーム(Javascriptを使用していません)や、twitter.pngTwitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。

Comment Form

QuickTagsHere

EmoticonHere

(入力しない場合「Anonymous」で代替されます)
(公開はされませんが、Gravatarアイコンの取得や、Comment Subscribeの送信先アドレスとして使われます)
(入力すると、コメント表示でユーザー名にリンクが貼られます)
(この情報は、JavascriptによりCookieに保存されます。)

NotifyMail Powered by Comment Subscribe

はてブコメント:

Home > Internet > Movabletype > 子カテゴリのエントリーを含むアーカイブ

MT5Techniques

MT5Techniques

2冊目の共著「Movable Type 5 実践テクニック」(シックスアパート監修)が出版されました。(ソフトバンク クリエイティブ刊)

検索
(5)
(6)

別ページに遷移します。

Powered by Hyper Estraier

Feeds
Link Status
In One

なかのひと

位置情報ブログパーツ「なかのひと」

Links
Powered By

Return to page top