MT:PageButeで分割+条件分岐での記事の出し分けを行う
2026.04.06
記事リストを分割することができる便利なPageButeプラグイン。
「1ページにつき10件」というように分割する記事数を指定できるのですが、
<mt:If>などを使って一部の記事を出力しないようにすると掲載数が指定通りになりません。

これは各ページ10件ずつに分割された後、If文によって一部の記事が非表示になるため、
たとえば3件非表示になったページは7件しか出力されません。

●対策
出力したい記事のみを配列に格納しておいて、<mt:Loop>を使って出力します。
そのloopをPageButeで分割します。
(※実はPageButeは<mt:Entries>以外も分割できます!)

●MTテンプレート

<!-- 配列の準備 -->
<$mt:SetVar name="entryArray" value=""$>
<mt:Entries>
<!-- 条件に一致した記事のみ配列に格納 -->
<mt:If tag="entrybody" ne="">
<mt:SetVarBlock name="entryArray" function="push">
    <!-- ここで出力時の形にしておく -->
    <h3><$mt:EntryTitle$></h3>
    <p><$mt:EntryBody$></p>
</mt:SetVarBlock>
</mt:If>
</mt:Entries>

<ul>
<mt:PageContents count="5">

    <!-- 配列に格納されたものをLoopで出力 -->
    <mt:Loop name="entryArray">		
        <li>
        <$mt:Var name="__value__"$>
        </li>
    <$mt:PageSeparator$>
    </mt:Loop>

</mt:PageContents>
</ul>



月別アーカイブ