MovableTypeで記事を1000件以上書き出そうとするとエラーが起こる対策

goto_jp 379views 更新:2014年1月15日

正確には記事が1000件以上あるとマズいのではなく、1回の MTEntries で1000回以上ループするとエラーが出てしまうようです。

普通のページ内で1000件も出力することはまず無いですが、 sitemap.xml の出力など、サイトの全記事を走査するような場合に躓くことになります。

参考元はコチラ。
http://www.tohdamikio.com/2013/09/mt6-sitemapxml-1000.html

<MTEntries lastn="999">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</MTEntries>
<MTEntries offset="999" lastn="999">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</MTEntries>
<MTEntries offset="1998" lastn="999">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</MTEntries>

一つの MTEntries では999件までで止め、offsetを利用して複数の MTEntries に分ける方法です。
ベタで MTEntries を増やすより、テンプレート内で計算できるプラグインなどを入れて全記事数から計算してループさせる組み方をした方が良さそうです。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません