応用
指定した記事をページネーションの1ページ目だけに表示する
ページ送り機能のある記事一覧リストの1ページ目のみに、特定の記事を表示する実装です。
メインページ内の記事一覧に、ピックアップしたい記事がある場合に有効な方法です。
実際に、General Blogテーマのメインページの記事一覧には「ピックアップ!」としてこの方法を使用しています。
まずは記事のカスタムフィールドにチェックボックスを用意します。
拡張子はentry_pickupです。
続いて、MTタグを設定します。
使用するMTタグ
まずはmt:SetVarBlock内に、field:entry_pickup="1"、mt:Entries lastn="5"の記述でentry_pickupのカスタムフィールドでチェックが入っている最新の5件の記事情報を取り出して変数として保存。
名前を pickup-entry-list とします。
続いてmt:SetVarBlock内に、entry-listモジュール(後述)を読み込ませて、名前をentry-listとして変数に保存します。
記述サンプル
メインページ記述
<mt:SetVarBlock name="pickup-entry-list">
<mt:Entries lastn="3" field:entry_pickup="1">
<mt:EntriesHeader>
<p><strong>ピックアップ!</strong></p>
</mt:EntriesHeader>
<div>
<h1><$mt:EntryTitle encode_html="1"$></h1>
<p>
<$mt:EntryDate format="%Y.%m.%d"$><br />
</p>
</div>
</mt:Entries>
</mt:SetVarBlock>
<mt:SetVarBlock name="entry-list">
<p><strong>記事一覧</strong></p>
<div>
<$mt:Include module="entry-list"$>
</div>
</mt:SetVarBlock>
<mt:If name="is_first_page">
<$mt:Var name="pickup-entry-list"$>
</mt:If>
<$mt:Var name="entry-list"$>
新しくモジュールを作成します。モジュール名は「entry-list」です。
mt:SetVarに、1ページ目としてvalue="1"の値を保存しておきます。
名前はname="is_first_page"で指定し、メインページでの振り分けに使用します。
ページ送りのmt:PaginationHasPrevious内ではmt:SetVarにvalue="0"を指定します。
それによりis_first_pageの値が、ページ送りで前のページリンクがない場合1ページ目と判断し1を、ある場合は2ページ目以降として判断し0になります。
entry-listモジュール記述
<$mt:SetVar name="is_first_page" value="1"$>
<mt:Entries unique="1" paginate_by="3">
<div>
<h1><$mt:EntryTitle$></h1>
<p><$mt:EntryDate format="%Y.%m.%d"$></p>
</div>
<mt:EntriesFooter>
<nav>
<ul>
<mt:PaginationHasPrevious>
<li><a href="<$mt:PaginationPreviousURL$>" rel="prev">前の3件</a></li>
<$mt:SetVar name="is_first_page" value="0"$>
</mt:PaginationHasPrevious>
<mt:PaginationHasNext>
<li><a href="<$mt:PaginationNextURL$>" rel="next">次の3件</a></li>
</mt:PaginationHasNext>
</ul>
</nav>
</mt:EntriesFooter>
</mt:Entries>