mtde.info

Movable Type Developers Express

全カテゴリからエントリを3件ずつ表示

2008年2月 3日 16:54 | Writer: apstar | 記事本文

全カテゴリからエントリを3件づつ取得して表示するサンプルです。

動作比較用に2種類のコードサンプルを記載します。

コード1

まずは、非常に簡単な、テンプレートタグのみを使用したサンプルコードです。MTCategoriesブロック内でMTEntriesタグにlastn="3"モデファイアを指定し、リストを生成します。本来の目的を達成するには通常はこのようなコードでよいです。

<MTCategories>
<h3><a href="<MTCategoryArchiveLink>"<MTIfNonEmpty tag="MTCategoryDescription"> title="<MTCategoryDescription>"</MTIfNonEmpty>><MTCategoryLabel> (<MTCategoryCount>)</a></h3>
<ul>
<MTEntries lastn="3">
   <li><a href="<MTEntryPermalink>"><MTEntryTitle></a></li>
</MTEntries>
</ul>
</MTCategories>

このエントリにサンプルコード1を貼った動作サンプル

CORESERVERでの導入例 (10)

CSSを適用する (10)

Feed関連サンプル (9)

For系 (2)

GetVar系 (4)

If系 (5)

Loop系 (3)

Movable Type 4とは (12)

MT3サイトをMT4へ移行(上書き) (1)

MT3サイトをMT4へ移行(新規) (12)

MT4のインストール (7)

SetVar系 (8)

Tips系 (13)

Windows版XAMPPのセットアップ (8)

XHTML文書の作成 (13)

その他のサンプル (5)

アイテム関連サンプル (22)

インストール後の設定 (7)

ウェブページ関連サンプル (8)

エントリ関連サンプル (13)

カスタムフィールド関連サンプル (3)

カテゴリ関連サンプル (19)

グローバル・モデファイア関連サンプル (10)

コメント関連サンプル (4)

タグ関連サンプル (7)

テンプレートの作成例 (33)

テンプレート解説 (18)

トラックバック関連サンプル (3)

トラブル集 (8)

ナビゲーション関連サンプル (6)

フォルダ関連サンプル (6)

ユーザー関連サンプル (4)

共通モデファイア系 (11)

変数 (13)

環境設定 (5)

コード2

Movable Type 4.1ならではの変数、ハッシュ、ループなどを使用して書くと以下のようになります。

簡単に説明すると、キーとして「カテゴリ名」を、値として「カテゴリ名にリンクまで含めた一連のhtmlタグ」を指定してハッシュを生成、その後MTLoopループにてカテゴリリストを生成しつつエントリリストを付加しています。

なお今のところこのコードはエントリページでしか動作しません。カテゴリページのサイドバーなどで動作させるには再構築エラーとなるので、コンテキスト関連の調整が必要です。

<MTCategories>
   <MTSetvarBlock name="CatLabel"><MTCategoryLabel></MTSetvarBlock>
   <MTSetvarBlock name="CatLinkSet"><a href="<MTCategoryArchiveLink>"<MTIfNonEmpty tag="MTCategoryDescription"> title="<MTCategoryDescription>"</MTIfNonEmpty>><MTCategoryLabel> (<MTCategoryCount>)</a></MTSetvarBlock>
   <MTSethashVar name="CatList">
      <MTSetVar name="$CatLabel" value="$CatLinkSet">
   </MTSethashVar>
</MTCategories>

<MTLoop name="CatList" sort_by="key">
   <h3><MTGetvar name="__value__"></h3>
   <ul>
   <MTSetVar name="ThisCat" value="$__key__">
   <MTEntries lastn="3" category="$ThisCat">
      <li><a href="<MTEntryPermalink>"><MTEntryTitle></a></li>
   </MTEntries>
   </ul>
</MTLoop>

このエントリにサンプルコード2を貼った動作サンプル

CORESERVERでの導入例 (10)

CSSを適用する (10)

Feed関連サンプル (9)

For系 (2)

GetVar系 (4)

If系 (5)

Loop系 (3)

MT3サイトをMT4へ移行(上書き) (1)

MT3サイトをMT4へ移行(新規) (12)

MT4のインストール (7)

Movable Type 4とは (12)

SetVar系 (8)

Tips系 (13)

Windows版XAMPPのセットアップ (8)

XHTML文書の作成 (13)

その他のサンプル (5)

アイテム関連サンプル (22)

インストール後の設定 (7)

ウェブページ関連サンプル (8)

エントリ関連サンプル (13)

カスタムフィールド関連サンプル (3)

カテゴリ関連サンプル (19)

グローバル・モデファイア関連サンプル (10)

コメント関連サンプル (4)

タグ関連サンプル (7)

テンプレートの作成例 (33)

テンプレート解説 (18)

トラックバック関連サンプル (3)

トラブル集 (8)

ナビゲーション関連サンプル (6)

フォルダ関連サンプル (6)

ユーザー関連サンプル (4)

共通モデファイア系 (11)

変数 (13)

環境設定 (5)

カテゴリ関連サンプル

2008 mtde.info