2013/10/24

Movable Typeで表示中の記事を記事一覧から除外する方法

MovableTypeで表示中の記事を記事一覧から除外する方法

Movable Typeで表示中の記事を記事一覧から除外する方法をご紹介します。

その他の記事をリストアップしたいときなどに現在表示中の記事を除外して、ユーザーが間違って同じページに飛ぶということを防ぐことが出来ます。

サンプルコード

<$mt:EntryID setvar="hyojikiji"$>
<mt:IfNonEmpty tag="EntryCategory">
	<mt:SetVarBlock name="categorytitle">
    	<mt:EntryCategories glue=", ">
        	<$mt:CategoryLabel$>
        </mt:EntryCategories>
    </mt:SetVarBlock>
    
    <mt:SetVarBlock name="category">
    	<mt:EntryCategories glue=" OR ">
        	<mt:CategoryLabel>
        </mt:EntryCategories>
    </mt:SetVarBlock>
    
    <ul>
    <mt:Entries category="$category">
        <$mt:EntryID setvar="article"$>
        <mt:If name="article" ne="$hyojikiji">
            <li>
                <a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>
            </li>
        </mt:If>
    </mt:Entries>
    </ul>
</mt:IfNonEmpty>

順に解説していきます。

1行目

<$mt:EntryID setvar="hyojikiji"$>

<$mt:EntryID>で現在表示中の記事のIDを取得し、変数"hyojikiji"に入力します。

16~23行目

<mt:Entries category="$category">
    <$mt:EntryID setvar="article"$>
    <mt:If name="article" ne="$hyojikiji">
        <li>
            <a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>
        </li>
    </mt:If>
</mt:Entries>

変数"article"と、1行目に表示中の記事のIDを入力した変数"hyojikiji"が一致しない場合に、<mt:If></mt:If>の中身を出力するよう設定しています。

出力されるコード

現在表示中の記事を記事03とすると、

<ul>
    <li><a href="記事01のURL">記事01のタイトル</a></li>
    <li><a href="記事02のURL">記事02のタイトル</a></li>
    <li><a href="記事04のURL">記事04のタイトル</a></li>
    <li><a href="記事05のURL">記事05のタイトル</a></li>
</ul>

表示中の記事(記事03)が除外された状態で出力されます。

まとめ

記事一覧から除外するという使い方以外にも、同じタグを持つ記事リストや同じカテゴリーに属する記事を出力する際にも使えます。細かい部分ですが、ユーザーの使い勝手の向上に一役買ってくれます。