Bloggerテンプレートの各ページ毎の条件式

投稿日 2021/04/17

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

コメント