Bloggerテンプレートの各ページ毎の条件式
目次
「Bloggerにあるページ一覧」からテンプレートの分岐処理部分を分離しました。
data:blog.pageType
<b:if cond='data:blog.pageType == "index"'>
<!-- トップページ・検索・ラベル -->
<!-- / -->
<!-- /search?updated-max= -->
<!-- /search?q=Query -->
<!-- /search/label/Label -->
</b:if>
<b:if cond='data:blog.pageType == "archive"'>
<!-- アーカイブ -->
<!-- /YYYY/MM/blog-post.html -->
<!-- /YYYY_MM_DD_archive.html -->
</b:if>
<b:if cond='data:blog.pageType == "item"'>
<!-- 投稿 -->
<!-- /YYYY/MM/blog-post.html -->
</b:if>
<b:if cond='data:blog.pageType == "static_page"'>
<!-- ページ -->
<!-- /p/blog-page.html -->
</b:if>
<b:if cond='data:blog.pageType == "error_page"'>
<!-- エラーページ -->
<!-- /404 -->
</b:if>
data:view.type
<b:if cond='data:view.type == "feed"'>
<!-- トップページ・検索・ラベル・アーカイブ -->
<!-- / -->
<!-- /search?updated-max= -->
<!-- /search?q=Query -->
<!-- /search/label/Label -->
<!-- /YYYY/MM/blog-post.html -->
<!-- /YYYY_MM_DD_archive.html -->
</b:if>
<b:if cond='data:view.type == "item"'>
<!-- 投稿・ページ -->
<!-- /YYYY/MM/blog-post.html -->
<!-- /p/blog-page.html -->
</b:if>
<b:if cond='data:view.type == "error_page"'>
<!-- エラーページ -->
<!-- /404 -->
</b:if>
query / label
<b:if cond='data:view.search.query'>
<!-- 検索(ワード) -->
<!-- /search?q=Query -->
</b:if>
<b:if cond='data:view.search.label'>
<!-- ラベル -->
<!-- /search/label/Label -->
</b:if>
※<b:if cond='data:numPosts == 0'>
で検索結果なしを判定できる
※検索ワード・ラベルの複数指定は、「+
」で可能です。
複数指定は、AND検索で動作します。
例:「/search?q=Query1+Query2
」
例:「/search/label/Label1+Label2
」
data:view.isMultipleItems / data:view.isSingleItem
<b:if cond='data:view.isMultipleItems'>
<!-- トップページ・検索(全体・ワード)・ラベル・アーカイブ -->
<!-- / -->
<!-- /search?updated-max= -->
<!-- /search?q=Query -->
<!-- /search/label/Label -->
<!-- /YYYY/MM/blog-post.html -->
<!-- /YYYY_MM_DD_archive.html -->
</b:if>
<b:if cond='data:view.isSingleItem'>
<!-- 投稿・ページ -->
<!-- /YYYY/MM/blog-post.html -->
<!-- /p/blog-page.html -->
</b:if>
※両者共に、エラーページが含まれていない
否定で使用した場合、エラーページが含まれる
data:view.is
<b:if cond='data:view.isHomepage'>
<!-- トップページ -->
<!-- / -->
</b:if>
<b:if cond='data:view.isPost'>
<!-- 投稿 -->
<!-- /YYYY/MM/blog-post.html -->
</b:if>
<b:if cond='data:view.isPage'>
<!-- ページ -->
<!-- /p/blog-page.html -->
</b:if>
<b:if cond='data:view.isSearch'>
<!-- 検索(全体・ワード) -->
<!-- /search?updated-max= -->
<!-- /search?q=Query -->
</b:if>
<b:if cond='data:view.isLabelSearch'>
<!-- ラベル -->
<!-- /search/label/Label -->
</b:if>
<b:if cond='data:view.isArchive'>
<!-- アーカイブ -->
<!-- /YYYY/MM/ -->
<!-- /YYYY_MM_DD_archive.html -->
</b:if>
<b:if cond='data:view.isError'>
<!-- エラーページ -->
<!-- /404 -->
</b:if>
特定ページ
<b:if cond='data:blog.url.canonical.https == data:blog.homepageUrl.canonical.https + "path"'>
<!-- /path -->
</b:if>
特定ページの複数指定
<b:with value='data:blog.url.canonical.https == data:blog.homepageUrl.canonical.https + "aaa"
or data:blog.url.canonical.https == data:blog.homepageUrl.canonical.https + "bbb"'
var='XYZ'>
<b:if cond='data:XYZ'>
<!-- /aaa -->
<!-- /bbb -->
</b:if>
<b:if cond='data:XYZ'>
<!-- /aaa -->
<!-- /bbb -->
</b:if>
</b:with>
※<b:with>
で定数を定義することで、複雑な式の記載を一箇所に集約が可能です。
<html>
直下に定義すると便利です。
モバイル
<b:if cond='data:blog.isMobileRequest'>
<!-- /*?m=1 -->
</b:if>
※「モバイルテンプレートの使用」を「はい」とする必要あり
ビューモード
<b:if cond='data:blog.view == "dark"'>
<!-- /*?view=dark -->
</b:if>
<b:if cond='data:blog.view == "xyz"'>
<!-- /*?view=xyz -->
</b:if>```
※`view`パラメータで自由文字列をテンプレート処理に入力できる
### レイアウト
```html
<b:if cond='data:view.isLayoutMode'>
<!-- /* -->
</b:if>
※Blogger管理ページのレイアウトで使用される
<b:template-skin>
を囲むことで、通常のページにテンプレート用のスタイルシートを出力しないようにできる
備考
その他のファイル
/favicon.ico # ファビコン
/robots.txt # robots.txt
/ads.txt # ads.txt
/atom.xml # ATOM
/rss.xml # RSS
/sitemap.xml # 投稿のサイトマップ
/sitemap-pages.xml # ページのサイトマップ
その他のディレクトリ
/b/ # プレビュー
/ncr/ # 国際リダイレクト無効
/view/ # 動的テンプレート
/feeds/ # フィード
その他のトップページ・検索・アーカイブ
/
/index.html
/search
/search/
/search/label
/search/label/
/YYYY
/YYYY/
/YYYY/MM
/YYYY/MM/
http / https の指定
data:blog.url.canonical.http
data:blog.url.canonical.https
data:view.url.canonical.http
data:view.url.canonical.https
data:blog.homepageUrl.canonical.http
data:blog.homepageUrl.canonical.https