2016年3月2日水曜日

[MT]記事ページで記事一覧を出す際、その一覧から当該記事を除外する(※基本形)

MTの記事ページに、記事一覧リストを吐き出して、その一覧から当該記事を表示させない場合のMTタグの使い回し方法の表記。
こういう面倒な事は分岐ーとかカスタムフィールドーとか考えちゃいますが、mt:Entriesのuniqueというモディファイアがあるので、こんなテストソースを書いた所、うまく行ったような感じ。


<mt:EntryID setvar="entryid">

<mt:Entries id="$entryid">
<mt:EntryTitle setvar="entrynow">
</mt:Entries>

<mt:Entries lastn="10" unique="1">
<li><mt:EntryTitle></li>
</mt:Entries>


まず、最初に表示している詳細記事のエントリーIDを取得し、setvarで代数へ。

そのエントリーIDの値を使って、その記事をmt:Entriesで呼び出す。これもsetvarで代数へ。

そして、uniqueを設定したmt:Entriesで記事リストを呼び出す。
現時点では、このリストの中に表示している記事のタイトルはないうえ、指定した件数が全部出ているのでまずは成功か。

このuniqueモディファイアは「その MTEntries ブロックタグは、同じテンプレート内で使用した MTEntries ブロックタグで出力した記事を除いて出力します。」というものなので、2番目のブロックでその記事を呼び出したことでこの条件に該当することになり、除外された。。。という仕組み。2番目のやつをsetvar指定したのは単に画面に表示させないようにするためだけなので、entrynowを使う予定は無し。

注意したいのは、このソースよりも前にmt:Entriesを使うような事をしてなければ、という感じか。

これは基本形。ここからさらに複雑になる実装を。これについては別エントリーで。

0 件のコメント:

コメントを投稿