カテゴリ一覧を件数で区切って表示

電脳備忘録

本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。

この記事は最終更新から3年以上経過しています。

仕事でwordpressを触っていたので、しばらくそれ関係の備忘録ばかりでしたが、久しぶりにMovableTypeの備忘録です。

このブログのカテゴリ一覧をみていて、カテゴリが増えるとそれだけ縦に長くなるのが嫌だったので、20件ごとに区切って横並びに出力するようにしました。
参考にしたのは下記のエントリー。参照先はフォルダ一覧を指定した件数で区切って表示する方法についてですが、かなり参考になりました。

「フォルダの一覧を4つずつ区切って、ul/li要素のリストで出力したい」というような内容の質問がありました。
この事例のように、各種のオブジェクトのリストを、一定件数ずつに区切って出力したいことは、よくあることです。
この方法を紹介します。

リストを一定件数ずつ区切って出力する
<$mt:SetVar name="ctr" value="1"$>
  <mt:TopLevelCategories>
    <$mt:SetVar name="mod" value="$ctr"$>
    <$mt:SetVar name="mod" op="%" value="20"$>
    <mt:If name="mod" eq="1">
      <ul class="categories">
    </mt:If>
    <mt:If tag="CategoryCount">
      <li><a href="<$mt:CategoryArchiveLink$>"<mt:If tag="CategoryDescription"> title="<$mt:CategoryDescription remove_html="1" encode_html="1"$>"</mt:If>><$mt:CategoryLabel$> (<$mt:CategoryCount$>)</a>
    <mt:Else>
      <li><$mt:CategoryLabel$>
    </mt:If>
      <$mt:SubCatsRecurse$></li>
    <mt:If name="mod" eq="0">
      </ul>
    </mt:If>
    <$mt:SetVar name="ctr" op="++"$>
  </mt:TopLevelCategories>
  <mt:If name="mod" ne="0">
    </ul>
  <mt:Else>
    <mt:SubCatIsFirst>
    <ul>
    </mt:SubCatIsFirst>
  </mt:If>
</mt:IfArchiveTypeEnabled>
0%