【Movable Type】特定の複数ブログ記事を出力する方法

関連記事の情報として、ブログを跨いだ記事IDでソートをかけたい時に、カスタムフィールドで記事IDの入力欄を追加して
カスタムフィールド「関連記事」3件まで登録可能。記事IDを入れてください。記載例 31,32,33
記事編集画面から、カスタムフィールド「関連記事」に複数ブログ記事IDを入れて、
カスタムフィールド「関連記事」入力した際のイメージ
記事に以下のように関連記事一覧の情報を表示するテンプレートの作成の仕方をご紹介します。
記事の表示結果

記事IDからのソートは1件のみなら簡単に出来ますが、複数となるとうまくいきません。

<mt:Entries id="548">

×

<mt:Entries id="548,460,462">

結論としては、<mt:Entries>ではなく<mt:loop>を使用します。

まず、変数(entry_ids)を定義して、カスタムフィールドに書かれた値「548,460,462」を設定します。

<$mt:EntryDataLink1 split="," setvar="entry_ids"$>

※split=”,” は、テンプレート中で「,」で分割するという記述になります。(カンマ区切りで入力して貰うことが前提になります。)
※split=”,” は、Split プラグインが無いと動きません。「システムのプラグイン設定」に「Split」が無い場合には、インストールして使用しましょう。

変数(entry_ids)の定義をして、以下で完成。

<mt:If tag="EntryDataLink1">               //もし、カスタムフィールドに記述があったら、
	<$mt:EntryDataLink1 split="," setvar="entry_ids"$>  //カスタムフィールドの情報を変数(entry_ids)に定義、
	<mt:loop name="entry_ids">              //変数(entry_ids)の値でループします。
	
		<mt:if name="__first__">             //ループの最初に囲みを追加
			<div class="listBox listBox1 clearfix">
		</mt:if>
		
		<mt:Entries id="$__value__" include_blogs="2,4"> //ブログID(2,4)に変数(entry_ids)の値に該当するIDの記事があったら、
			<$mt:EntryTitle$>               //記事のタイトルを出します。
		</mt:Entries>                   //変数(entry_ids)の値だけ繰り返し(3回)
		
		<mt:if name="__last__">              //ループの最後に囲みの閉じを追加
			</div>
		</mt:if>
	
	</mt:loop>
</mt:if>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です