【MT5/Movabletype5】

Movabletype5で制作を行っているのですが、エントリーページに該当するカテゴリーの年別アーカイブを表示させたいと思っております。

<MTArchiveList archive_type="Category-Yearly">
<p><a href="<MTArchiveLink>"><MTArchiveTitle></a></p>
</MTArchiveList>

ですと、登録してある全カテゴリの年別アーカイブが表示されてしまいます。

<MTArchiveList archive_type="Yearly">
<p><a href="<MTBlogURL><MTCategoryBasename><MTArchiveDate format="%Y">"><MTArchiveTitle></a></p>
</MTArchiveList>

ですと強引に表示できるのですが、該当年のエントリーがないとNOT FOUNDになります(あたりまえですが。。。)

どなたかご教授お願い頂けないでしょうか?
よろしくお願い致します。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2011/02/12 18:26:17
  • 終了:2011/02/14 15:16:29

ベストアンサー

id:rouge_2008 No.2

rouge_2008回答回数594ベストアンサー獲得回数3512011/02/13 08:30:50

ポイント100pt

以下のような感じで可能でした。

<MTIf tag="EntryCategory">
<MTSetVarBlock name="e_cat"><mt:EntryCategories glue=','><$mt:CategoryLabel$></mt:EntryCategories></MTSetVarBlock>
</MTIf>
<MTUnless name="e_cat">
<MTElse>
<mt:IfArchiveTypeEnabled archive_type="Category-Yearly">
    <mt:ArchiveList archive_type="Category-Yearly">
        <mt:ArchiveListHeader>
<div class="widget-archive-current-category-yearly widget-archive widget">
    <h3 class="widget-header">カテゴリ年別アーカイブ</h3>
    <div class="widget-content">
        <ul>
        </mt:ArchiveListHeader>
<MTSetVarBlock name="c_name"><$mt:ArchiveTitle$></MTSetVarBlock>
<MTSetVarBlock name="c_name2"><$MTVar name="c_name" regex_replace="/:.+/",""$></MTSetVarBlock>
<MTIf test="$e_cat =~ $c_name2">
          <li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveTitle$></a></li>
</MTIf>
        <mt:ArchiveListFooter>
        </ul>
    </div>
</div>
        </mt:ArchiveListFooter>
    </mt:ArchiveList>
</mt:IfArchiveTypeEnabled>
</MTUnless>

※複数のカテゴリに属する場合にも対応させてあります。


※分からない事がある場合は、コメント欄を開けて置いてくださった方がやり取りし易いです。

id:asgi

rounge_2008様いつもありがとうございます!

こちらのコードをブログ記事テンプレートの表示させたい部分にコピペしてみましたが、

エラーは起きませんでしたが、<li>部分が表示されないようでした。

複数カテゴリーの場合、単一カテゴリーの場合も同様に<li>部分が表示されないようです。

単一カテゴリーで運用予定なのでこちらが満たせれば問題ないのですが

もう少しお付き合いいただけるようでしたら、こちらのコードにコメントなど頂くこと可能でしょうか?

2011/02/13 13:26:10

その他の回答(1件)

id:online_p No.1

online_p回答回数1153ベストアンサー獲得回数592011/02/13 00:02:13

どうしたいわけですか?http://www

id:asgi

例えばカテゴリーAに属するエントリーのページにおいてカテゴリーAの年別アーカイブリストを生成したいという事です。

2011/02/13 00:24:32
id:rouge_2008 No.2

rouge_2008回答回数594ベストアンサー獲得回数3512011/02/13 08:30:50ここでベストアンサー

ポイント100pt

以下のような感じで可能でした。

<MTIf tag="EntryCategory">
<MTSetVarBlock name="e_cat"><mt:EntryCategories glue=','><$mt:CategoryLabel$></mt:EntryCategories></MTSetVarBlock>
</MTIf>
<MTUnless name="e_cat">
<MTElse>
<mt:IfArchiveTypeEnabled archive_type="Category-Yearly">
    <mt:ArchiveList archive_type="Category-Yearly">
        <mt:ArchiveListHeader>
<div class="widget-archive-current-category-yearly widget-archive widget">
    <h3 class="widget-header">カテゴリ年別アーカイブ</h3>
    <div class="widget-content">
        <ul>
        </mt:ArchiveListHeader>
<MTSetVarBlock name="c_name"><$mt:ArchiveTitle$></MTSetVarBlock>
<MTSetVarBlock name="c_name2"><$MTVar name="c_name" regex_replace="/:.+/",""$></MTSetVarBlock>
<MTIf test="$e_cat =~ $c_name2">
          <li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveTitle$></a></li>
</MTIf>
        <mt:ArchiveListFooter>
        </ul>
    </div>
</div>
        </mt:ArchiveListFooter>
    </mt:ArchiveList>
</mt:IfArchiveTypeEnabled>
</MTUnless>

※複数のカテゴリに属する場合にも対応させてあります。


※分からない事がある場合は、コメント欄を開けて置いてくださった方がやり取りし易いです。

id:asgi

rounge_2008様いつもありがとうございます!

こちらのコードをブログ記事テンプレートの表示させたい部分にコピペしてみましたが、

エラーは起きませんでしたが、<li>部分が表示されないようでした。

複数カテゴリーの場合、単一カテゴリーの場合も同様に<li>部分が表示されないようです。

単一カテゴリーで運用予定なのでこちらが満たせれば問題ないのですが

もう少しお付き合いいただけるようでしたら、こちらのコードにコメントなど頂くこと可能でしょうか?

2011/02/13 13:26:10
  • id:rouge_2008
    すみません。
    ウィジェットテンプレートでないと反映されませんでした。
    次の方法でウィジェットテンプレートを作成してください。

    1.管理画面で「デザイン」→「ウィジェット」と進んで、「ウィジェットテンプレート」の「ウィジェットテンプレートの作成」を選択して、属するカテゴリの年別アーカイブを表示するためのウィジェットテンプレートを作成してください。
    ※名前は適当で大丈夫ですが、ここでは「属するカテゴリの年別アーカイブ」を作成したとします。
    ※このテンプレートの内容に回答したコードを貼り付けて保存します。

    2.ブログ記事テンプレートの表示したい位置に次のように記述します。

    <$mt:Include widget="属するカテゴリの年別アーカイブ"$>


    ※さらに「ウィジェットセット」の「ウィジェットセットの作成」を選択し、適当な名前でウィジェットセットを作成して、テンプレートから作成したウィジェットセットを読み込んでも可能です。(このセットで「属するカテゴリの年別アーカイブ」をインストール済みにします。)
  • id:asgi
    ご返信遅くなりまして、申し訳ありません。
    頂いた手順で無事表示できました!
    ウィジェットは今まで利用したことがなかったもので、再利用性が高くて便利ですね。
    ありがとうございました!

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

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

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

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