以前にコンテンツタイプで年のアーカイブ一覧を表示する方法の記事を掲載しましたが、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>
【参考サイト】
コメントが承認されるまで時間がかかります。