Edited at

【MT】よく使うMovableTypeのタグまとめ

More than 1 year has passed since last update.


はじめに

よくMTタグを忘れるのでメモします。

他に使うタグを見つけたときは、追加します。

テンプレートタグについての詳細は、公式サイトの「テンプレートタグリファレンス | MovableType.jp」をご覧ください。


目次

項目が多くなってきたので、目次作りました。

よく見るとタイトルがわかりにくいですね・・・

すいません、暇なときに修正します。


  1. ウェブサイトのURLを表示

  2. ウェブサイトのURLを表示(//から始めるURL)

  3. ブログのURLを表示

  4. ブログに設定した「説明」の内容を表示

  5. テンプレートモジュールを読み込み

  6. テンプレートモジュール(親ウェブサイトから)を読み込み

  7. ブログのIDを取得

  8. ブログ記事のIDを取得

  9. 日付を表示

  10. タイトルを表示

  11. リンク付きタイトルを表示

  12. 本文を表示

  13. 本文(リッチテキスト)での改行を表示させる

  14. 記事の出力ファイル名を表示

  15. 公開日の古い順に並び替え

  16. カテゴリ名を表示

  17. カテゴリの説明を表示

  18. カテゴリのフォルダ名/ファイル名を表示

  19. 公開済みの記事があるカテゴリ一覧を表示する

  20. 表示する件数を指定

  21. 表示するカテゴリを指定する

  22. 条件分岐で表示する文字を変更する

  23. 表示するブログを指定する

  24. カスタムフィールドを表示

  25. カスタムフィールド(テキスト複数行)を改行して表示

  26. 画像のカスタムフィールドを表示

  27. カスタムフィールドで選択した値(日付)で並び替え

  28. カスタムフィールドに入力した数値で並び替え

  29. 連番を表示

  30. 前後リンクを表示

  31. 特定のカテゴリに該当する記事(公開済のみ)の件数が0なら何も表示せず、0でなければ表示する

  32. 指定したカテゴリの最終更新日時を表示

  33. 指定したカテゴリの情報を表示

  34. 指定したカテゴリの前後リンクを表示

  35. カテゴリ別に違うブログ記事(アーカイブテンプレート)を適用

  36. 指定した日数だけ自動で「NEW」マークを表示


ウェブサイトのURLを表示

ウェブサイトのURLは、MT管理画面の左メニューから「設定」→「全般」のページにある「公開パス」の「 ウェブサイトURL」に記入したURLのこと。

おそらく、末尾に「/」スラッシュが入るので、画像やリンクのパスを差し替えるときは、タグの後にスラッシュは入れないで記述すること。例えば、<a href="<$mt:WebsiteURL$>access/">こんな感じ。

<$mt:WebsiteURL$>

参考:MTWebsiteURL | テンプレートタグリファレンス


ウェブサイトのURLを表示(//から始めるURL)

<$mt:WebsiteURL$> はhttp:// から始まる絶対 URL で表示されます。

HTTPSで接続するのに // から始めるURLにしたい場合は下記のように記述します。

<$mt:WebsiteURL replace="http:",""$>


ブログのURLを表示

<$MTBlogURL$>

参考:MTBlogURL | テンプレートタグリファレンス


ブログに設定した「説明」の内容を表示

「説明」は、MT管理画面の左メニューから「設定」→「全般」のページにある「説明」のこと。

<$mt:BlogDescription$>


テンプレートモジュールを読み込み

<$mt:Include module="テンプレートの名前"$>


テンプレートモジュール(親ウェブサイトから)を読み込み

<$mt:Include module="テンプレートの名前" parent="1"$>


ブログのIDを取得

<$MTBlogID$>


ブログ記事のIDを取得

<$mt:EntryID$>


日付を表示

<$MTEntryDate format="%Y.%m.%d"$>

参考:MTEntryDate | テンプレートタグリファレンス


タイトルを表示

<$mt:EntryTitle$>

※HTMLページのタイトルは下記のようにするとよいかも。

<title><MTIf name="archive_class" eq="entry-archive"><$MTEntryTitle$> - </MTIf><$MTBlogName encode_html="1"$></title>


リンク付きタイトルを表示

<a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>


本文を表示

<mt:If tag="EntryBody"><$MTEntryBody$></mt:If>


本文(リッチテキスト)での改行を表示させる

記事本文(リッチテキスト)で Enter キーを押して改行し、1行空きを入れると <p></p> が挿入されます。

MT6.3 の環境で、IE、GoogleChrome、Firefoxで確認(2017年3月現在)しましたが、<br> ではなく <p></p> が挿入されました。

p タグに対して、余計な余白をなくすCSSを記述していると、<p></p> が挿入されても、何の隙間も表示されず、改行しても行間に空きができません。

p タグの間に空白などを入れることで、表示上は空きができます。

replace を使い、置換します。

<$mt:EntryBody replace="<p></p>","<p> </p>"$>


記事の出力ファイル名を表示

<$mt:EntryBasename$>

※出力ファイル名のみで拡張子は取得しません。


公開日の古い順に並び替え

sort_by="authored_on"で並び変えの対象を公開日に指定し、sort_order="ascend"で昇順(新しいものが下)になるように指定しています。

<mt:Entries sort_by="authored_on" sort_order="ascend">

※公開日以外も対象に指定できます。詳細はMTEntriesをご覧ください。


カテゴリ名を表示

<$MTCategoryLabel$>

※記述するページによりますが、<mt:EntryCategories><$MTCategoryLabel$></mt:EntryCategories>のように<mt:EntryCategories>で囲まないとエラーが表示されます。


カテゴリの説明を表示

<$MTCategoryDescription$>

※記述するページによりますが、<mt:EntryCategories><$MTCategoryDescription$></mt:EntryCategories>のように<mt:EntryCategories>で囲まないとエラーが表示されます。


カテゴリのフォルダ名/ファイル名を表示

<$MTCategoryBasename$>

※記述するページによりますが、<mt:EntryCategories><$MTCategoryBasename$></mt:EntryCategories>のように<mt:EntryCategories>で囲まないとエラーが表示されます。


公開済みの記事があるカテゴリ一覧を表示する

<ul>

<mt:TopLevelCategories>
<mt:If tag="CategoryCount">
<li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$> (<$mt:ArchiveCount$>)</a></li>
</mt:If>
</mt:TopLevelCategories>
</ul>

<mt:If tag="CategoryCount"></mt:If> で囲むと公開済みの記事があるカテゴリのみ表示します。


表示する件数を指定

例)3件表示する場合

<mt:Entries limit="3">

ここに処理を記述
</mt:Entries>

数を指定するのにlimitモディファイアの他にlastnモディファイアがあります。

limitモディファイアの方が使い勝手が良いと思います。

違いは公式サイトの「lastn モディファイアと limit モディファイアの違い」をご覧ください。


表示するカテゴリを指定する

<mt:Entries category="hoge">

ANDやNOTなどの指定も可能です。

詳細は「MovableType mt:Entriesのカテゴリ指定方法いろいろ」か「MTEntries - CMSプラットフォーム Movable Type -」をご覧ください。


条件分岐で表示する文字を変更する

例)BlogIDを変数に設定して、条件分岐をする場合

<mt:SetVarBlock name="thisBlogID"><$MTBlogID$></mt:SetVarBlock> <!-- thisBlogIDという変数にブログIDを代入 -->

<mt:If name="thisBlogID" eq="2"> <!-- thisBlogIDの値が2なら -->
お知らせ
<mt:Else> <!-- thisBlogIDの値が2でなければ -->
採用情報
</mt:If>


表示するブログを指定する

<mt:Entries blog_ids="ここにブログIDを記入">

</mt:Entries>

参考:マルチブログ機能が利用できるテンプレートタグ : Movable Type 5 ドキュメント


カスタムフィールドを表示

例)カスタムフィールドのテンプレートタグが「TestEntryType」の場合

<mt:If tag="TestEntryType"><mt:TestEntryType></mt:If>


カスタムフィールド(テキスト複数行)を改行して表示

例)カスタムフィールドのテンプレートタグが「TestEntryType」の場合

<mt:If tag="TestEntryType"><mt:TestEntryType filters="__default__"></mt:If>

上記の方法だと改行が <p><br> に変換され、リセットCSSなどを適用していると、1行空きで入力しても、空きが生じません。

単純に <br> だけに変換したいなら nl2br="1" を指定します。

<mt:If tag="TestEntryType"><mt:TestEntryType nl2br="1"></mt:If>

<br> ではなく <br /> に変換したいならnl2br="xhtml"` を指定します。


<mt:If tag="TestEntryType"><mt:TestEntryType nl2br="xhtml"></mt:If>


画像のカスタムフィールドを表示

例)カスタムフィールドのテンプレートタグが「TestEntryPhoto」の場合

<mt:TestEntryPhotoAsset><img src="<mt:AssetURL>"></mt:TestEntryPhotoAsset>

※ Asset の記述が必要です。


カスタムフィールドで選択した値(日付)で並び替え

ベースネームがentrytimeの場合は下記のように記述します。

<mt:entries sort_by="field:entrytime">

<mt:If tag="entrytime">
<p><$mt:EntryTitle$></p>
</mt:If>
</mt:entries>

<mt:entries sort_by="field:entrytime">でカスタムフィールドの値で並び替えをしています。

<mt:If tag="entrytime">で日付の入力がある記事のみ表示しています。

※詳細は別途投稿した「並び順」をご覧ください。


カスタムフィールドに入力した数値で並び替え


プラグインを利用する方法

最初に「数値型のカスタムフィールドを追加するプラグイン(その1) - The blog of H.Fujimoto」のプラグインをインストールします。

例)ベースネームがpriceの場合

<mt:Entries sort_by="field:price" sort_order="ascend">

</mt:Entries>


プラグインを利用しない方法

<mt:Loop> を使うことでプラグインなしでも並び替えができるそうです。

<mt:Entries> を使い方はプラグインを入れる方が簡単かと思います。

参考:MovableType カスタムフィールドの値でちゃんと並び替えたいんだってばよ!|ホームページ制作のプラルトweb


連番を表示

<$mt:SetVar name="cnt" value="1"$>

<mt:Entries>
<$mt:GetVar name="cnt"$>
<$mt:SetVar name="cnt" op="++"$>
</mt:Entries>


前後リンクを表示

<MTEntryPrevious>

<a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>
</MTEntryPrevious>
<MTEntryNext>
<a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>
</MTEntryNext>

参考:MTEntryPrevious | テンプレートタグリファレンス MTEntryNext | テンプレートタグリファレンス


特定のカテゴリに該当する記事(公開済のみ)の件数が0なら何も表示せず、0でなければ表示する

最初の3行で「カテゴリ名」のカテゴリに該当する記事(公開済)をカウントし、Count_Infoという変数にカウントした記事を代入しています。

<mt:If name="Count_Info" ne="0">でカウントした記事の数が0と一致するか判定しています。

ne="0"は0と一致しない場合のみ実行という意味になります。

neを変えることで条件を変えることができます。

詳細は「MTIf」をご覧ください。

<mt:Entries category="カテゴリ名">

<mt:SetVarBlock name="Count_Info"><$mt:EntriesCount$></mt:SetVarBlock>
</mt:Entries>
<mt:If name="Count_Info" ne="0">
<h2>タイトル</h2>
</mt:If>


指定したカテゴリの最終更新日時を表示

<MTEntries category="カテゴリ名" limit="1">

<$MTEntryDate format="%Y.%m.%d">
</MTEntries>


指定したカテゴリの情報を表示

<mt:Entries category="カテゴリ名">

ここに処理を記述
</mt:Entries>


指定したカテゴリの前後リンクを表示

<MTSetVarBlock name="thisid"><$MTEntryID$></MTSetVarBlock>

<MTSetVarBlock name="ecat">ここにカテゴリ名を記入</MTSetVarBlock>

<MTEntries category="$ecat">
<MTSetVarBlock name="eid"><$MTEntryID$></MTSetVarBlock>
<MTIf name="eid" eq="$thisid">
<MTSetVarBlock name="prev"><$MTVar name="__counter__"$></MTSetVarBlock>
<MTSetVarBlock name="next"><$MTVar name="__counter__" value="2" op="-"$> </MTSetVarBlock>
</MTIf>
</MTEntries>

<MTEntries category="$ecat" limit="1" offset="$prev">
前へ:<a href="<$MTEntryPermalink$>" accesskey="1"><$MTEntryTitle$></a><br />
</MTEntries>

<MTIf name="next" ge="0">
<MTEntries category="$ecat" limit="1" offset="$next">
次へ:<a href="<$MTEntryPermalink$>" accesskey="3"><$MTEntryTitle$></a><br />
</MTEntries>
</MTIf>


カテゴリ別に違うブログ記事(アーカイブテンプレート)を適用

<MTIfCategory name="カテゴリA">

ここにカテゴリAの処理
</MTIfCategory>
<MTIfCategory name="カテゴリB">
ここにカテゴリBの処理
</MTIfCategory>


指定した日数だけ自動で「NEW」マークを表示


プラグインで実装する場合

藤本氏の「DateDiffプラグイン」を導入すると、○日前の日付を指定した形式で取得することが可能です。

試してはないですが、MTIfで何日前の投稿なのか、比較すれば自動で「NEW」マークを表示することができるかと思います。


PHPで実装する場合

当たり前ですが、PHPでも可能です。

例)30日間「NEW」マークを表示する場合

関数

function new_display($time) {

$line = date("Ymd", mktime( 0,0,0,date("m") ,date("d")-30, date("Y")));
$entry = $time;
if($entry>=$line) { echo "<span>NEW</span>"; }
}

何日間表示するかは php date("d")-30 の30を変更

表示箇所

<?php new_display("<$MTEntryDate language='en' format='%Y%m%d'$>"); ?>