[MovableType]MTEntriesの表示件数を動的に変更

『MT5の環境下において
MTEntriesのlastnの値を動的に変更したい。
出来ればカスタムフィールドの値を参照したい。』

なんて場面に遭遇して色々と検索をかけてみたら

<MTEntries lastn="n">

の n に対してはカスタムフィールドの値が設定出来ませんでした。

原因としてはカスタムフィールドの値はあくまでテキストであり、
数列データではないため、[Non-numeric]としてエラーをはきます。

解決策としては

<mt:SetVarBlock>

を用いて一度変数に格納して
その後、

<MTEntries lastn="n">

の n に対して変数として代入します。

ソースコード

<mt:SetVarBlock name="entry_loop_count"><mt:カスタムフィールド名></mt:SetVarBlock>
<mt:entries lastn="$entry_loop_count">
	<mt:entrytitle />
</mt:entries>

解説

①MT関数[SetVarBlock]を用いて
カスタムフィールドの値をname[entry_loop_count]に格納。
※MT関数[SetVarBlock]の後に改行を入れてしまうと
改行付きの値を生成するので
②の処理で整数値として認識されない恐れがあります。

②MT関数[entries]の引数[lastn]に対して
変数値として変数[entry_loop_count]を指定。
※MT関数[GetVar]を用いない理由は
引数[lastn]に対してMT関数[GetVar]を指定すると
MTタグとして解釈されすに処理されてしまうからです。


This entry was posted in: CMS. Bookmark the ➜ permalink.

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)