[MT覚書]meta descriptionとkeywordをテンプレート毎に表示を変える

2012年9月16日

こちらのサイトを参考にmeta descriptionとkeywordを
モジュールテンプレートに分岐仕様でまとめました。

MT5 METAタグ(keywords/description)について考える:+Chip(プラスチップ)

MT5 テンプレートモジュールの共有化について考えてみた2:+Chip(プラスチップ)

◎インデックステンプレート:メインテンプレート(main_index)
◎インデックステンプレート:アーカイブインデックス(archive_index)
◎インデックステンプレート:カスタムテンプレート(これには予約変数がないので自分で変数をつくる)
◎アーカイブテンプレート:ブログ記事(entry_archive)
◎アーカイブテンプレート:カテゴリ別ブログ記事リスト(category_archive)
◎アーカイブテンプレート:月別ブログ記事リスト(datebased_only_archive)
◎ウェブページ(page_archive)
◎システムテンプレート(system_template)

自分のは上ほど、細かい分岐は必要なかったので、
以下のタグを記述を組み合わせればよさそうです。

トップページ(メインページ)やアーカイブページ関連

●ブログの「設定」→「全般」で設定した「サイトの説明」を表示する記述

<meta name="description" content="<$MTBlogDescription encode_html="1"$>" />

●キーワードの直接記述

<meta name="keywords" content="キーワード1,キーワード2,キーワード3" />

記事ページ関連

●ブログ記事投稿画面のキーワードに入力したものをkeywordsに表示する記述

<meta name="keywords" content="<$MTEntryKeywords$>" />

●ブログ記事投稿画面の概要に入力したものをDescriptionに表示する記述

<meta name="Description" content="<$MTEntryExcerpt$>" />

●ブログ記事投稿画面の本文の頭80字をDescriptionに表示する記述

<meta name="Description" content="<$MTEntryBody words="80" encode_html="1" strip_linefeeds="1"$>" />

ウェブページ関連

●ウェブページ投稿画面のキーワードに入力したものをKeywordsに表示する記述

<meta name="keywords" content="<$MTPageKeywords$>" />

●ウェブページ投稿画面の概要に入力したものをDescriptionに表示する記述

<meta name="Description" content="<$MTPageExcerpt$>" />

まず、どういう風な表示にしたいか書き出す。

先にどういう風に表示するかをまとめておいた方が、
分岐を組むときに混乱しなくてよい感じでした。

●トップページ
description:「設定」→「全般」で設定した「サイトの説明」
keyword:固定のキーワード

●アーカイブページ
description:「設定」→「全般」で設定した「サイトの説明」
keyword:固定のキーワード

●ウェブページ
description:投稿画面で入力した「概要」
keyword:投稿画面で入力した「キーワード」

●ブログ記事
description:文章の最初の80字
keyword:投稿画面で入力した「キーワード」

等。
上を基にすると以下のような記述になります。

分岐の例

<mt:If name="main_index">
<!-- トップページ --> 
<meta name="description" content="<$MTBlogDescription encode_html="1"$>" />
    <meta name="keywords" content="キーワード1,キーワード2,キーワード3," />

 <mt:ElseIf name="archive_index">
<!-- アーカイブ(記事一覧)ページ -->
<meta name="description" content="<$MTBlogDescription encode_html="1"$>" />
<meta name="keywords" content="キーワード1,キーワード2,キーワード3," />
 
<mt:ElseIf name="entry_archive">
<!-- 記事ページ -->
<meta name="Description" content="<$MTEntryBody words="80" encode_html="1" strip_linefeeds="1"$>" />
<meta name="keywords" content="<$MTEntryKeywords$>" />

<mt:ElseIf name="page_archive">
<!-- ウェブページ -->
<meta name="Description" content="<$MTPageExcerpt$>" />
<meta name="keywords" content="<$MTPageKeywords$>" />

<mt:ElseIf name="category_archive">
<!-- カテゴリ別ブログ記事リスト -->
<meta name="description" content="<$MTBlogDescription encode_html="1"$>" />
<meta name="keywords" content="キーワード1,キーワード2,キーワード3," />

<mt:ElseIf name="datebased_only_archive">
<!-- 月別ブログ記事リスト -->
<meta name="description" content="<$MTBlogDescription encode_html="1"$>" />
<meta name="keywords" content="キーワード1,キーワード2,キーワード3," />

<mt:Else>
<!-- 上記以外 -->
<meta name="description" content="<$MTBlogDescription encode_html="1"$>" />
<meta name="keywords" content="キーワード1,キーワード2,キーワード3," />
</mt:If>

上にコメントアウト入れとくと、確認するときに一目でわかってよかったですw

おまけ:vicnaテンプレートで消した記述

vicnaには最初から結構考えられてる記述が
各テンプレートに入っているのですが、通常のブログの仕様向けなので、
今回ははずしました。下以外にもあると思います。

●vicnaブログ記事テンプレートから削除

<MTEntryExcerpt no_generate="1" remove_html="1" ltrim="1" setvar="entry_description" />
<MTUnless name="entry_description"><MTEntryExcerpt remove_html="1" ltrim="1" setvar="entry_description" /></MTUnless>
<MTIf name="entry_description">
    <meta name="description" content="<$MTVar name="entry_description"$>" />
<MTElse>
    <meta name="description" content="このページは、<$MTEntryAuthorDisplayName$>が<$mt:EntryDate format="%x %X"$>に書いた記事です。" />
</MTIf>
<MTEntryKeywords remove_html="1" setvar="entry_keywords" />
<MTSetVarBlock name="entry_keywords" append="1"><MTIf name="entry_keywords">,</MTIf><MTEntryTags glue=","><$MTTagName encode_html="1"$></MTEntryTags></MTSetVarBlock>
<MTIf name="entry_keywords">
    <meta name="keywords" content="<$MTVar name="entry_keywords"$>" />
</MTIf>

●vicnaメインページテンプレートから削除

<MTIf tag="BlogDescription">
    <meta name="description" content="<$MTBlogDescription encode_html="1"$>" />
</MTIf>
<MTIf tag="BlogDescription">
    <meta name="description" content="<$MTBlogDescription encode_html="1"$>" />
</MTIf>
<MTSetVarBlock name="main_keywords"><MTTags top="10" glue=","><$MTTagName encode_html="1"$></MTTags></MTSetVarBlock>
<MTIf name="main_keywords">
    <meta name="keywords" content="<MTAuthors><MTIf tag="AuthorEntryCount"><$MTAuthorDisplayName$>,</MTIf></MTAuthors><$MTVar name="main_keywords"$>" />
</MTIf>

一括修正のために~グローバルテンプレートの利用~

20101020追記

複数のブログで構成されてる場合、
一括で直せるように、こんな方法もとってみました。
ご参考まで。

1. グローバルテンプレートにメタというテンプレートモジュールを作成

2. 各々のテンプレートの当該部分に以下を挿入
<$MTInclude module="メタ"$>

修正が必要になった場合は、『メタ』テンプレートだけ直せばよい。