yasuizu

一覧でエントリーとコンテンツデータの混在

0

ひとつのMTサイト内で通常の記事と、コンテンツデータで作成した記事があります。

例えば、インデックステンプレートで記事の一覧を出力する時に、それらの通常の記事(エントリー)とコンテンツデータを、日付順に混在して表示させることは可能なのでしょうか。

返信(2)

| 返信する
  • 記事とコンテンツデータを一つのハッシュに格納してから、<mt:Loop>で取り出す事で実現可能です。

    <mt:Ignore>最大表示件数</mt:Ignore>
    <mt:SetVar name="limit" value="10">
    
    

    <mt:Ignore>格納先となるハッシュを用意</mt:Ignore>
    <mt:SetVar name="entries_and_contents">

    <mt:Ignore>記事の出力データをハッシュに格納する</mt:Ignore>
    <mt:Entries lastn="$limit">
    <mt:Ignore>「公開日_ID」を格納時のキーとする</mt:Ignore>
    <mt:SetVarBlock name="hash_key"><mt:EntryDate format="%Y%m%d%H%I%S">_<mt:EntryID pad="1"></mt:SetVarBlock>
    <mt:SetVarBlock name="entries_and_contents" key="$hash_key">
    <li>
    <a href="<mt:EntryPermaLink>"><mt:EntryTitle></a>
    </li>
    </mt:SetVarBlock>
    </mt:Entries>

    <mt:Ignore>コンテンツタイプ「hoge」の出力データをハッシュに格納する</mt:Ignore>
    <mt:Contents content_type="hoge" limit="$limit">
    <mt:Ignore>「公開日_ID」を格納時のキーとする</mt:Ignore>
    <mt:SetVarBlock name="hash_key"><mt:ContentDate format="%Y%m%d%H%I%S">_<mt:ContentID pad="1"></mt:SetVarBlock>
    <mt:SetVarBlock name="entries_and_contents" key="$hash_key">
    <li>
    <a href="<mt:ContentPermalink>"><mt:ContentLabel></a>
    </li>
    </mt:SetVarBlock>
    </mt:Contents>

    <mt:If name="entries_and_contents">
    <ul>
    <mt:Ignore>ハッシュに格納したデータを、キーの逆順(公開日が新しい順)でループ出力する</mt:Ignore>
    <mt:SetVar name="output_count" value="0">
    <mt:Loop name="entries_and_contents" sort_by="key reverse">
    <mt:If name="output_count" lt="$limit">
    <mt:Var name="__value__">
    <mt:SetVar name="output_count" op="++">
    </mt:If>
    </mt:Loop>
    </ul>
    <mt:Else>
    <p>現在、記事はありません。</p>
    </mt:If>

  • ありがとうございます!!

    いただいたコードで想定していた一覧が出力できました!
    配列とハッシュの使い方をもっと勉強したいと思います。
    いただいたコードを参考にさせていただきます。

返信する


カテゴリグループ

106 23

最新のトピック: test (2019年5月29日 sato)

フォーラムカテゴリー

21 76

最新のトピック: 公開終了日の取り消し (2013年10月18日 gsk)

342 947

最新のトピック: MT6.3.7のPHP7.2対応 (2019年4月 3日 noble777)

398 1089

最新のトピック: ログインエラーについて (2019年5月21日 matuAD)

OpenID対応しています OpenIDについて