Movable Type(MT)で月別アーカイブを作成しました。

サイドに年単位の記事数を、カウントさせる方法をどなたか知りませんか?
↓このように表記させたい

【バックナンバー】
2008年の記事(4)
2007年の記事(2)
2006年の記事(1)

多くの参考サイト様のお陰で記事数のカウント以外はクリアできましたが
そこから先がどうにもうまくいきません。
<$MTArchiveCount$>ですとその年の最新の月の記事数しかカウントしてくれないのです。
<$MTArchiveCount format="%Y"$>は撃沈済みです。

※今回、月別の記事数やリンクは表示させません。
制作環境3.3です。(4にアップグレードする予定はなし)
どうぞよろしくお願いいたします。

■参考までに現在インデックステンプレートで使用しているタグ
<MTIfArchiveTypeEnabled archive_type="Monthly">
<ul>
<MTIfEqual a="[MTGetVar name='lastyear']" b="2">
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader>
<li><a href="<$MTArchiveDate format="%Y"$>/"><$MTArchiveDate format="%Y"$>年の記事(<$MTArchiveCount$>)</a></li>
</MTArchiveDateHeader>
</MTArchiveList>
</MTIfEqual>
</ul>
</MTIfArchiveTypeEnabled>

回答の条件
  • 1人5回まで
  • 登録:2008/02/05 01:17:37
  • 終了:2008/02/12 01:20:02

回答(1件)

id:tukihatu No.1

牛乳先生(tukihatu)回答回数180ベストアンサー獲得回数322008/02/06 11:55:49

ポイント60pt

4しか環境がないので外していたらすいません。

もっと簡単な方法がある気もしますが、自分はこれで対応します。

<MTArchiveList archive_type="Yearly">
<MTSetVarBlock name="set"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
<MTSetVarBlock name="$set"><$MTArchiveCount$></MTSetVarBlock>
</MTArchiveList>

<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader>
<MTSetVarBlock name="set"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
<li><a href="<$MTArchiveDate format="%Y"$>/">
<$MTArchiveDate format="%Y"$>年の記事(<$MTvar name="$set"$>)</a></li>
</MTArchiveDateHeader>
</MTArchiveList>

4ではこれで動きました。

SetVarBlock name="$set"っていう文が3.3で動くかどうかですけど…

多分年別アーカイブとか別なところでも動くと思います。

id:i2dy

回答ありがとうございます。早速試してみました。

が、残念ながら結果はうまくいきませんでした・・・

上の方の<MTArchiveList archive_type="Yearly">がサポート外のようで

年別アーカイブでもインデックステンプレートでも以下のようなエラーが

『<MTArchiveList>タグでエラーが発生しました: <MTArchiveList>タグの種類の指定に誤りがあります。』が出てしまいました。

下の方の記述は<$MTvar name="$set"$>が動作しないのか

()内になにも表示されませんでした。う~ん、残念!

2008/02/06 22:25:15
  • id:tukihatu
    MT3はyearlyがなかったみたいです。すいません。
    Yearlyを使わない方法としては、VarHandlerプラグインを導入して、monthのcountを足し算する方法があります。
    が、これも$setっていう変数の呼び方ができないと動かないかも…
    プラグインは下からダウンロードできます。
    http://www.h-fj.com/blog/archives/2005/12/27-130612.php

    <MTArchiveList archive_type="Monthly">
    <MTSetVarBlock name="set"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
    <MTSetVarBlock name="include"><$MTArchiveCount$></MTSetVarBlock>
    <MTAddVar name="$set" value="$include">
    </MTArchiveList>

    <MTArchiveList archive_type="Monthly">
    <MTArchiveDateHeader>
    <MTSetVarBlock name="set"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
    <li><a href="<$MTArchiveDate format="%Y"$>/">
    <$MTArchiveDate format="%Y"$>年の記事(<$MTvar name="$set"$>)</a></li>
    </MTArchiveDateHeader>
    </MTArchiveList>
  • id:i2dy
    コメント有難うございます!
    早速実装してみましたが・・・残念ながら動いてくれませんでした。
    逆に申し訳なくなってきました;

    紹介していただいたVarHandlerプラグインで
    過去月のエントリー達と最新月のエントリーを足して・・・とかで
    想像ではうまいことできそうな予感はするんですけどね。

    3世代ではMonthlyでarchive_typeを指定してしまうので
    無理なのかもしれないですねTT

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません