コンテンツタイプの年アーカイブ一覧でsort_orderが効かない

以前にコンテンツタイプで年のアーカイブ一覧を表示する方法の記事を掲載しましたが、sort_orderで降順にしようとしたところうまくいかなかったので、その際の対応方法をメモ。
「Movable Type Pro r.4208」で確認しています。

サンプルコード

以前掲載した記事のコードにsort_order=”descend”を追加して、降順になるようにしてみます。

<ul>
  <mt:ArchiveList content_type="コンテンツタイプ 名" archive_type="ContentType-Yearly" sort_order="descend">
    <li><a href="<mt:ArchiveLink encode_html="1">"><mt:ArchiveDate format="%Y">年</a></li>
  </mt:ArchiveList>
</ul>

これで降順になるはずなのですが、昇順のままでした。

<ul>
    <li><a href="https://xxxxx/2017/">2017年</a></li>
    <li><a href="https://xxxxx/2018/">2018年</a></li>
    <li><a href="https://xxxxx/2019/">2019年</a></li>
</ul>

実装方法を少し変更して、一旦配列に逆順に格納してから再出力するようにしました。

<mt:ArchiveList content_type="コンテンツタイプ 名" archive_type="ContentType-Yearly">
  <mt:SetVarBlock name="years" function="unshift"><li><a href="<mt:ArchiveLink encode_html="1">"><mt:ArchiveDate format="%Y">年</a></li></mt:SetVarBlock>
</mt:ArchiveList>
<ul>
<mt:Loop name="years">
  <mt:Var name="__value__">
</mt:Loop>
</ul>

MTArchiveList内では配列に逆順に格納するようにして、その後MTLoopで出力するようにしています。
これで降順に変更することができました。

<ul>
  <li><a href="https://xxxxx/2019/">2019年</a></li>
  <li><a href="https://xxxxx/2018/">2018年</a></li>
  <li><a href="https://xxxxx/2017/">2017年</a></li>
</ul>

 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年4月
 123456
78910111213
14151617181920
21222324252627
282930