Movable Typeでのmeta周りの指定方法
みなさん、こんにちは、まーしーです
アイスコーヒー&牛乳の消費量が半端ないです。1リットルずつを二日持たずに消費しそうな勢いなので少し自重しようかと思ってます。
MTでmeta descriptionやmeta keywordsを設定する場合どのように指定していますか?
どのような内容を指定するか?という議論もありますし、MTタグをつかってどのように設定するか?というのもあるかと思います。
どのような内容にすべきか?というのは今回はおいておいて、MTタグ、テンプレートをどのように使い分けるか?というのは試行錯誤している所ではあるのですが、現時点での個人的なやり方をまとめておこうかな、と思います
_defaultとともに変数を読み込む様にしてしまう
多くの場合、テンプレートモジュールのヘッダー、フッターを読み込んでいるので、ヘッダー内に
<meta name="description" content="<mt:GetVar name="page_description" _default="デザインユニット「linker」のwebsiteです。" />" />
みたいな感じでまずは指定してしまいます。
「テンプレートモジュール>ヘッダー」で色々条件分岐させて、とやることが多かったのですが、条件分岐が複雑になってしまいますし、「もし○○アーカイブだったら」とかの条件分岐をいれるのも無駄かもな?と思ったのと、テンプレートの数(インデックス、ブログ記事、ウェブページ、ブログ記事リスト etc.)くらいであれば各テンプレートでやってしまった方が見通しも良さそうと判断しました。
_defaultモディファイアで値(この場合はpage_description)がなかった場合に表示されるモノを指定してあります。
各テンプレートアーカイブ、インデックステンプレートで値をセット
とりあえずこのような感じで書いておいて各テンプレートで
<mt:SetVar name="page_description" value="○○のdescriptionです" />
とか書いて指定してしまいます。まぁ、多くの場合、1テンプレートから1htmlとはならないので条件分岐させて内容を変えるか、valueの部分にmtタグがくるようになるはずですね。
<mt:SetVarBlock name="page_description"><mt:EntryExcerpt /></mt:SetVarBlock>
とか
<mt:SetVars> page_description=<mt:EntryExcerpt /> </mt:SetVars>
細かいところは好みになってしまうかと思いますが、descriptionにあわせてkeywordsを指定することもあるかとおもうので<mt:SetVars>のほうがよいのかもしれません。
一点気をつけるとすれば、mt:SetVarsの場合は
<mt:SetVars> 変数名=変数の値 変数名=変数の値 </mt:SetVars>
となる関係上、変数の値には複数行の値を入力することが出来ません。問題になることはないかもしれませんが、上記のサンプル
<mt:SetVarBlock name="page_description"><mt:EntryExcerpt /></mt:SetVarBlock>
のように概要が自動的に入るように指定してある場合など、自動で入ってくるモノに改行が入ってしまう場合があるかもしれません。そうなると再構築時にエラーとなってしまうので、
<mt:SetVars> page_description=<$MTEntryExcerpt convert_breaks="0" remove_html="1" strip_linefeeds="1"$> </mt:SetVars>
というかんじで、strip_linefeedsで改行を削除する必要があります。
ここで軽く嵌ってしまったので個人的にも備忘録として残しておきたいと思います。概要に限らずですが、ものによっては入力モードが複数あるので担当者が複数名いたりするとそのも考慮しておく必要がありますね。
ルールを作りつつ方法を模索
linker内ではまだまだルール作りができていないのですが、標準テンプレートなどを作る際に、このような細々したところをを考慮できたら効率よく仕事ができるのかも?とか思ったりしています。
効率よく作っていける方法を模索するのは、見通しよく作る方法と近いところがあるのかも?という気がするので、試行錯誤を怠ってはいけないな、と痛感しています。
linker のhtml自体もっと直さないといけないところが多く恥ずかしい限りなのですが、仕事にかこつけて後手後手になってしまっています。
色々直しながらjournalにも書いていきたいところです。