ニッチなCMSとAWS徒然日記

Movable Typeでmetaタグのdescriptionを設定する方法

18 January, 2011

Movable Typeではウェブサイト(ブログ)やカテゴリ、ウェブページ、ブログ記事にそれぞれ概要(説明)を設定できるのに、metaタグのdescription(<meta name="description" content="…">)にはデフォルトで反映されませんので、テンプレートタグで実装する方法です。

入力項目とmetaタグに反映される内容

ウェブサイトおよび各ブログのトップ

全般設定の「ウェブサイト(ブログ)設定」の「説明」※1

ブログ記事

各ブログ記事の「概要」。概要に記述がないときは、ブログ記事の本文を、「投稿設定」→「概要の文字数」で指定した文字数だけ先頭から表示。

ウェブページ

各ウェブページの「概要」。なければ※1

カテゴリアーカイブ

各カテゴリの「説明」。なければ※1

上記以外

※1

※いずれも設定していない場合は表示されません。

テンプレートタグ

<mt:SetVarBlock name="meta_description">
<mt:Ignore>ブログ記事の場合</mt:Ignore>
<mt:if name="entry_archive">
<mt:If tag="EntryExcerpt">
<$mt:EntryExcerpt convert_breaks="0"$>
<mt:Else>
<$mt:BlogDescription$>
</mt:If>
<mt:Ignore>ウェブページの場合</mt:Ignore>
<mt:ElseIf name="page_archive">
<mt:If tag="PageExcerpt"><$mt:PageExcerpt no_generate="1" convert_breaks="0" setvar="page_excerpt"$></mt:If>
<mt:If name="page_excerpt" ne="">
<$mt:Var name="page_excerpt"$>
<mt:Else>
<$mt:BlogDescription$>
</mt:If>
<mt:Ignore>カテゴリーアーカイブの場合</mt:Ignore>
<mt:ElseIf name="category_archive">
<mt:If tag="CategoryDescription">
<$mt:CategoryDescription$>
<mt:Else>
<$mt:BlogDescription$>
</mt:If>
<mt:Ignore>その他</mt:Ignore>
<mt:Else>
<$mt:BlogDescription$>
</mt:If>
</mt:SetVarBlock>
<mt:SetVarBlock name="meta_description"><$mt:Var name="meta_description" strip_linefeeds="1" trim="1" remove_html="1" encode_html="1" strip="" $></mt:SetVarBlock>
<mt:If name="meta_description" ne=""><meta name="description" content="<$mt:Var name="meta_description"$>"></mt:If>

※<$mt:BlogDescription$>はウェブサイトでは<$mt:WebsiteDescription$>と同義です。 上記コードをテンプレートモジュールとして登録し、必要な部分で<$mt:Include module="モジュール名"$>すればOK。