Bloggerで各投稿の検索向け説明にスニペットを出力する
はじめに
Bloggerの検索向け説明をすべてのページで書くのは面倒なため、スニペット(記事の最初の文章)を自動的に出力するように設定する。
標準ヘッダー
Blogger標準で次のヘッダーが設定されている。
<b:include data='blog' name='all-head-content'/>
このヘッダー内に検索向け説明は次のように記述されている。
all-head-content...
<b:if cond='data:blog.metaDescription'>
<meta expr:content='data:blog.metaDescription' name='description'/>
</b:if>
...
<meta expr:content='data:view.description.escaped' property='og:description'/>
...
blog.metaDescription・view.description
blog.metaDescription/view.descriptionの出力を調べると次の出力になる。
blog.metaDescription
- [設定] > [メタタグ] > [検索向け説明を有効にする] 有効時
- [投稿] > [投稿の設定] > [検索向け説明]
- 未設定時は、なし
- [投稿] > [投稿の設定] > [検索向け説明]
- [設定] > [メタタグ] > [検索向け説明を有効にする] 無効時
- なし
- [設定] > [メタタグ] > [検索向け説明を有効にする] 有効時
view.description
- [設定] > [メタタグ] > [検索向け説明を有効にする] 有効時
- [投稿] > [投稿の設定] > [検索向け説明]
- [設定] > [メタタグ] > [検索向け説明]
- 投稿の設定が優先される
- [設定] > [メタタグ] > [検索向け説明を有効にする] 無効時
- 投稿・ページ
- スニペット
- その他
- [設定] > [基本] > [説明]
- 投稿・ページ
- [設定] > [メタタグ] > [検索向け説明を有効にする] 有効時
結論
よって、次の設定とコード追加をすれば目的の出力が得られる。
次の設定に変更する。
- [設定] > [メタタグ] > [検索向け説明を有効にする] を無効にする。
- [設定] > [基本] > [説明] を記載する。
all-head-content直後に次のコードを追加する。(all-head-contentを2重に書いてはならない)
<b:include data='blog' name='all-head-content'/>
<b:if cond='!data:blog.metaDescription and data:view.description.escaped'>
<meta expr:content='data:view.description.escaped' name='description'/>
</b:if>