2008年11月29日 20:00

Movable Typeでmeta descriptionを設定する

 

MTにブログをお引越ししたのはよいですが、metaタグのdescriptionを初期設定しておらず、「サイト内の全部のページが同じdescriptionだよ」と、Googleウェブマスターツールに怒られてしまいました。

descriptioのエラー

そこで、ヘッダー類のテンプレートを変更して、description要素を設定します。

descriptionの実装方針

以下のような方針で実装します。

・ブログ記事の場合は、「概要」欄に入力されたデータを表示。「概要」欄にデータがない場合、ブログ記事の文章を任意の文字数で切り取ってdescriptionに埋め込み

ブログ記事概要

・カテゴリーアーカイブの場合は「カテゴリの説明」に書かれているデータを表示。

カテゴリ概要

・年月別アーカイブでは、「ブログ名:○年○月アーカイブ」とデータを表示

年月別アーカイブ概要

こんな感じです。

処理としては以下のようになります。

1・htmlを再構築する際に、各アーカイブごとに「description」に埋め込む変数を取得

2・共通使用されているhtmlヘッダーのパーツに、1で取得したdescriptionデータを代入

3・各アーカイブごとに、descriptionを書き分けて出力

 

descriptionの変数化

descriptionの値を変数化します。ここでは「excerpt」という名前にします。次に、各アーカイブテンプレートの1行目に、以下のような設定を行います。

ブログ記事アーカイブの処理:

<mt:setvarblockname="excerpt"><$mt:entryexcerpt$></mt:setvarblock>

ブログ記事のテンプレートソース

カテゴリ別ブログ記事リストの処理:

<mt:setvarblockname="excerpt"><$mt:categorydescription$></mt:setvarblock>

カテゴリ別ブログ記事リストのテンプレートソース 

月別ブログ記事リストの処理:

<mt:setvarblockname="excerpt"><$mt:blogname$>:<$mt:ArchiveTitle$>アーカイブ</mt:setvarblock>

月別ブログ記事リストのテンプレートソース

次に、テンプレートモジュールのhtmlヘッダーのタグを下記のように記述

<meta name="description" content="<$mt:var name="excerpt"$>" />

HTMLヘッダーのテンプレートソース

こうやって再構築すると、各ブログ記事、カテゴリ別ブログ記事リスト、月別ブログ記事リスト、それぞれに適切なdescriptionが付与されます。

 

ブログ記事の場合、「概要」欄に記述された概要文がdescription要素として反映されます。もし「概要」欄に何も入力されていなかった場合、MTタグのデフォルトの機能により、ブログ記事本文の文章を任意の文字数で区切って反映してくれます。

カテゴリ別ブログ記事リストの場合、カテゴリで設定した「説明」の文章が、description要素として反映されます。

月別ブログ記事リストの場合、ブログ名:○○年○○月アーカイブ というdescriptinが、各年月別アーカイブファイルに反映されます。

 excerptionの代入概念

概念としては、上図のようになります。

descriptionの設定が終わったら、次はkeywordsです。

keywordsの設定はやや複雑になるため、次回以降2,3回に分けて記述します。