個人的な備忘録
その他の記事
タグの記法について
大文字小文字は区別しない。
<MTIgnore>
も<mtignore>
も同じ。
MT
と mt:
の違いはない。歴史的な経緯。
<MTIgnore>
も<mt:ignore>
も同じ。
$有りと無し
$
は変数のメタファー。
<MTVar name="custom_field">
はタグ。
<$custom_field$>
は変数のメタファー。
mt:BlogHost
ブログのホスト名を表示します。例えば、ブログ URL が http://www.example.com/blog/ の場合、www.example.com を表示します。
mt:BlogURL
目的
ブログのFQDN(ドメイン名)を含むURLを出力する。
通常は mt:BlogURL
を使う方が良いが、検索CGIなどを使った場合、異なるドメイン(ホスト・サーバー)でCGIが実行されていると、リンク切れになる場合がある。
このような場合は、FQDNを含む完全なURLで出力する。
使い方
<a href="<$mt:BlogURL$>">TOP</a>
mt:BlogRelativeURL
目的
Apache の mod_write
での rewrite_base
に相当する。
MovableTypeは、一つのシステムで複数のブログを公開できる為、ブログ毎にディレクトリィを分ける場合がある。
FQDN(ドメイン名)を含めないのは、URLでドメイン名が省略されていた場合、カレントのページと同一であるとみなす仕様がある為。
こうすることで、MovableTypeの実行環境(ドメイン)と生成されたHTMLの公開環境(ドメイン)が異なっていてもリンクできる。
使い方
<a href="<$mt:MTBlogRelativeURL$>">TOP</a>
mt:BlogName
目的
環境設定で設定されたブログ名を表示する。
使い方
<header><h1><$mt:BlogName$></h1></header>
mt:BlogRelativeURL
目的
ドキュメント・ルートからの、ブログのパスを抽象化する。
使い方
<$MTBlogRelativeUrl$>foo.html
→ /blog-root/foo.html
CategoryBasename
encode_html
目的
HTMLのエスケープ("<"や">"など)
使い方
<mt:EntryBody encode_html="1">
encode_url
目的
Aタグ(アンカー)のhrefに利用する値をエンコードする時に使います。
使い方
<mt:EntryTitle encode_url="1">
<MTVar name="custom_field" encode_url="1">
MTCanonicalURL
目的
CanonicalなURLを出力する
使い方
<link rel="canonical" href="<$MTCanonicalURL$>" />
regex_replace
目的
正規表現による置換
使い方
例えば、http:
を https:
に置換する。
<MTVar name="custom_field" regex_replace="/http:/","https:">
タグを変数に変換する
使い方
タグ <mt:WebsiteURL>
を変数 $MTWebsiteURL
に変換する。
<mt:WebsiteURL setvar="MTWebsiteURL">
目的
記事のURLはフル・パスだが、ドキュメント・ルート・パスに変換したい。
<mt:WebsiteURL setvar="MTWebsiteURL">
<mt:WebsiteRelativeURL setvar="MTWebsiteRelativeURL">
<mt:EntryPermalink replace="$MTWebsiteURL","$MTWebsiteRelativeURL">
置換を使っているのは、ブログのパスがドキュメント・ルート直下ではなく、サブディレクトリィに設定されている場合があるから。
<mt:WebsiteURL> → http://example.com/example/
<mt:WebsiteRelativeURL> → /example/
配列のループ
基本
配列に代入された値を出力する。
ループの評価に利用される変数 i
は、$i
でタグの中で利用できる。
配列を定義
<mt:SetVar name="list[1]" value="one" />
<mt:SetVar name="list[2]" value="twe" />
<mt:SetVar name="list[3]" value="three" />
ループ処理
<mt:For var="i" from="1" to="3">
<mt:Var name="i"> <mt:Var name="list[$i]"> <br/>
</mt:For>
2次元配列なら、連想配列より、こちらの方が直感的でシンプル
各配列へ定義した値をタグ内で使いたい場合は、GetVar
して、変数に SetVar
する。
複数の配列を定義する。
<mt:SetVar name="name[1]" value="新着" />
<mt:SetVar name="code[1]" value="new" />
<mt:SetVar name="name[2]" value="人気" />
<mt:SetVar name="code[2]" value="popular" />
<mt:SetVar name="name[3]" value="ほげ" />
<mt:SetVar name="code[3]" value="hoge" />
ループ処理
<mt:For var="i" from="1" to="3">
各配列に代入されている値を出力
<mt:Var name="i"> <mt:Var name="name[$i]"> <mt:Var name="code[$i]"><br/>
カテゴリー名で記事を抽出する
<mt:GetVar name="name[$i]" setvar="category_name" />
<mt:Entries lastn="10" category="$category_name">
<$MTEntryTitle$><br/>
</mt:Entries>
</mt:For>
プラグイン
MTTruncateURL
目的
リンク(aタグのhref)のスキーム(http, https)やFQDN(ドメイン名)を含むURL(https://example.com/foo/bar
)を、ドメイン名を除いた、ドキュメント・ルート・パス(https://example.com/foo/bar
→ /foo/bar
)に変換する。
使い方
MTTruncateURL Plugin配布サイトからプラグインをダウンロードしてpluginフォルダにアップします。
対象となるのは、a
タグのhref
アトリビュート要素の値だけです。
<mt:truncateurl>
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryArchiveLink$></a>
</mt:truncateurl>