- 2008-02-22 (金) 14:18
- MovableType


- MTSetVarsでヘッダをきれいに?
MTブログでのMTSetVarsの解説には、実は以下のような事が書かれています。
また MT4.1 では、テンプレートの最初に設定した MTSetVar などによる、出力ファイルの最初の空白行の発生も、解決される予定です。
とか書いてあったのに、どうもMT4.1のデフォルト・テンプレートで使っている様子が無い。
しかも書き方の例は載っていても、使うケースが説明されてない、MTSetVarsはこう使うつもりだったんじゃというネタ。
誰もやってない気がするので、記事にします。
<MTSetVar name="body_class" value="mt-main-index"> <MTSetVar name="main_template" value="1"> <MTSetVar name="main_index" value="1"> <MTSetVar name="sidebar" value="1"> <MTSetVar name="module_recent_entries" value="1"> <MTSetVar name="module_category_archives" value="1"> <MTSetVar name="module_author_archives" value="1"> <MTSetVar name="module_monthly_archives" value="1">
このそれぞれのMTSetVarの後ろの改行が、出力されてしまってNGだった訳です。
MT4.1でも、インクルードをフラット化すると、ほぼ同じ感じのテンプレートになります。でもなぜか、同じ状態にはならないんですね。これは謎です。
とりあえず、prependの話とかと併せて、そこはスルーします。
それで、もしこのMT4.01のヘッダ部分を、MTSetVarsを使って書いたとしたら、以下のようになります。
<MTSetVars> body_class=mt-main-index main_template=1 main_index=1 sidebar=1 module_recent_entries=1 module_category_archives=1 module_author_archives=1 module_monthly_archives=1 </MTSetVars>
MTSetVarsはブロックタグなので、中身の改行は出力されません。
もし、このMTSetVarsがMT4.01で使えていれば、あれほど行頭の空白も話題にならなかったでしょうね。
ちなみにセットする値にはMTタグも使えるし、スペースが含まれるような場合にはシングルクォート(')で括れば大丈夫です。(ダブルクォートでも問題ないかも知れないけど、HTMLタグをセットするような場合に、アトリビュートをダブルクォート(")で括るので、シングルクォートって覚えた方が便利だと思います)
<MTSetVars> thisblogname=<$MTBlogName encode_html="1"$> bloglink='<a href="http://null.nobody/" title="null">link</a>' </MTSetVars>
意外といろんな使い方が出来そうですね。
- Newer >: テンプレートセット・プラグインの作り方
- < Older: ActionStreamはどうやってインストールするの
ping a Trackback
- TrackBack URL for this entry.(1)




スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。