MT(Movable Type)のHTMLカスタマイズをしようとした際に、HP作成経験のある方でも挫折しそうになるのがMT特有のタグではないでしょうか?
もっとも、これはMTに限られた課題ではなく、ブログ・プログラム(サービス)、CMS等、動的なサイト生成プログラムのカスタマイズをする際には避けられないもののようで、一方でMTのタグというのは、読み方・使い方などのコツを掴めさえすれば、左程、難しいものではないようです。
ここでは、出力値に関するものがメインとなりますので、静的ページの生成を前提に「HTMLタグ」と仮称して話を進めます。
そこで本エントリーでは、私なりに理解したMTのHTMLタグの癖というか特性みたいなものを書いてみたいと思います。
sixapartさんからも、一応、MTタグ一覧なども出ていますので、そちらとMT標準テンプレートを照らし合わせていくだけでも、相当のことが分かります。
まず、MTのHTMLタグ自体に大きく分けて「コンテナ・タグ」と「変数タグ」があることを理解しないと先に進めません(でした w)。
*他にも条件タグとか、いくつか念頭に置きたいものはありますが、おいおいで良いかと思います
「コンテナ・タグ」というのは、本来のHTMLタグで言えば「h1」とか「h2」に相当すると思って良いでしょうが(本来のHTMLタグは、それ自体の機能を保持しています。あくまで便宜上の表現です。)、「MTプログラム」に引き渡す関係か、一般的なHTMLよりも厳密に「内容」が規定されています。
たとえば、タグ一覧の最初にある「MTBlogs」は「システムに登録されているブログの一覧を表示します」という意図だけに対応する、といった具合です。その基本的な意図に沿って、初めて「コンテナ」が機能していきます。
ですので、そのコンテナ・タグが何を目的としたタグなのか?を出来るだけ明確に知り、意識する必要があります。
続いて正式名称が分からないので仮に「変数タグ」としたのは、例えば「ブログの名前」を表示する「<$MTBlogName$>」タグであれば、「指定値に基づいたブログの名前」を表示するので、絶対的な数値(あるいは文字)ではない、という意味です。
この指定値は、各コンテナ・タグ内のみならず、上位から挙げていくとシステム、(各)ブログ、各アーカイブ・ページで単独でも機能するもの、場合があります。
「<$MTBlogName$>」タグであれば、あるブログ内でコンテナ・タグと無関係に使用される限り、該当するブログの名前を示す、といった具合です。
さらにエントリーやカテゴリーに関する多少のカスタマイズを加えていく上ではコンテナ・タグで目的内容を規定し、変数タグで出力値を規定するというイメージを基本として掴んでおくのが良いかと思います。
加えて「条件タグ」というのは、いわば「条件関数タグ」で、条件に沿っていたらA、そうでなければ(elseタグなどを使用します)Bという出力をしてね、という意味を持ちます。
こらら(特にコンテナ・タグ)に「アトリビュート」と呼ばれる属性値を与えると、与えられた値に沿った出力が可能になる、というのもMTカスタマイズ上、必要になってくる知識です。
例として1000エントリーあるブログで「MTEntories」タグを使用して上限値を与えないと、1000エントリー分のタイトルならまだしもコンテンツ(本文)が生成されてしまう、ということが生じてしまうからです。
アトリビュートに関してはsixapartさんのこのエントリーが書き方なども参考になります。
MTタグの概要に関しては、凡そ、この程度の理解でもなんとかなるかと思います。
・・・というか、私の場合、なんとかなっている、というだけなのですが(^^;
後はどんなMTタグがあるのかを一通り念頭に置いておき、タグ・リファレンスで引き出しながら記載して結果確認、必要なら修正して再確認・・・といった作業を繰り返すうちに慣れてきます。
始めのうちは、変数タグが機能する条件を外していたり、適切な場所でタグを使ってなかったり、ということでエラーが出るのは仕方ないかな?と思います。
このサイトではそれほど難しいタグは使用していませんが、やはりTry&Errorを繰り返したものも結構、あります。
結果、意図通りの表示が出来て、エラー原因も分かれば良いのですが、エラー原因も不明なままに修正出来てしまったママというケースもあったりして、意外と(滝汗)だったりしてますです、はい。
(タグ・リファレンスは正式に書籍版もあるので、必要に応じて購入されるのも良いかもしれませんネ ^^;)