『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タグとして解釈されすに処理されてしまうからです。