現在のエントリと同じタグのついた他エントリのリストアップ(自エントリは含まない)
現在のエントリと同じタグのついた他のエントリを10件列挙するコードサンプルです。現在のエントリ・他のエントリに複数タグがつけられていても正常に動作します。
TagStrings変数へ、現在のエントリで使用されているタグをカンマ区切りで全て繋げた文字列を代入します。
MTEntriesループ中では、エントリひとつひとつのタグを変数へ代入、TagStrings変数へエントリひとつひとつのタグが含まれていないかチェックします。含まれている場合はFind変数へ1をセット、これをフラグとして次からのタグの評価をキャンセルします。これは、他のエントリの最後のタグが、現在のエントリに含まれていない場合フラグがクリアされるのを防ぐためです。
最後に、Find変数が1である(=同じタグが含まれている)他のエントリを、10件取得しています。10件のカウントはEntCnt変数をインクリメントカウントすることで実現しています。
コード
<MTSetvar name="EntCnt" value="0">
<MTSetVarBlock name="CurEnt"><MTEntryTitle></MTSetVarBlock>
<MTSetVarBlock name="TagStrings"><MTEntryTags grue=","><MTTagName></MTEntryTags></MTSetVarBlock>
<ul>
<MTEntries tag="$EntTags">
<MTSetVarBlock name="LopEnt"><MTEntryTitle></MTSetVarBlock>
<MTSetVar name="Find" value="0">
<MTEntryTags>
<MTSetVarBlock name="tmpTagName"><MTTagName></MTSetVarBlock>
<MTIf name="Find" eq="0">
<MTIf name="TagStrings" like="$tmpTagName">
<MTSetVar name="Find" value="1">
</MTIf>
</MTIf>
</MTEntryTags>
<MTIf name="Find" eq="1">
<MTIf name="LopEnt" ne="$CurEnt">
<MTSetVar name="EntCnt" op="inc">
<MTIf name="EntCnt" le="10">
<li><a href="<MTEntryPermalink>"><MTEntryTitle></a></li>
</MTIf>
</MTIf>
</MTIf>
</MTEntries>
</ul>
このエントリにサンプルコードを貼った動作サンプル
- MTSetVarTemplateを用いた演算パッキングの例
- エントリリストにおいて、ある特定の条件の場合のみ先頭にアイコンを出す
- カテゴリ別に見た目を切り替える(テンプレートを切り替える)
- カテゴリ別に見た目を切り替える(サイドバーの状態を変える)
- カテゴリ別に見た目を切り替える(hn見出しの背景画像)
- カテゴリ別に見た目を切り替える(カテゴリリード文へ異なる背景画像)
- カテゴリ別に見た目を切り替える(異なる画像の差し込み)
- ページ末尾付近に「ページ先頭へ」のアンカーリンクをつける
- ハッシュ変数を使って同一カテゴリ内の前・次リンク表示(エントリベースネーム順)
- ハッシュ変数を使って同一カテゴリ内の前・次リンク表示(投稿日時順)
- カテゴリ:エントリ関連サンプル
エントリ関連サンプル
- 素ノーマルエントリリスト
- ドロップダウンエントリリスト
- 現在のエントリを強調表示するエントリリスト
- 現在のエントリの属するカテゴリ内のエントリリスト(リスト取得のみ)
- 現在のエントリの属するカテゴリ内のエントリリスト(自エントリを含まない)
- 現在のエントリの属するカテゴリ内のエントリリスト(自エントリを強調表示)
- 現在のエントリと同じタグのついた他エントリのリストアップ(自エントリは含まない)
- 現在のエントリと同じタグのついた他エントリのリストアップ(自エントリを強調表示)
- 更新のあったエントリーを新しい順に10件表示する
- エントリの投稿日時と更新日時を取得する
- エントリリストへ、特定カテゴリ用画像を付与する
- 横並べカテゴリ内エントリリスト
- エントリリストをファイル名で並べ替える