Blogger:テンプレート編集(2)インクルードincludeは関数に相当

前の関連記事:Blogger:テンプレート編集(1)Blogger独特のタグの理解が必要

<b:includable></b:includable>を<b:include />で呼び出す


レイアウト用ウィジット タグ - Blogger ヘルプ

これにでてくる例です。行番号は私がつけたものです。

 "main" セクションから "i" と呼ばれる投稿が渡され、渡された投稿はインクルードされているセクションで変数 "p" として参照され、こうしてタイトルが表示されます。

1 <b:includable id='main'>
2   <b:loop var='i' values='posts'>
3      <b:include name='post' data='i'/>
4   </b:loop>
5 </b:includable>
6
7 <b:includable id='post' var='p'>
8    Title: <data:p.title/>
9 </b:includable>

逆方向から理解したほうが私にはわかりやすいです。

タイトルを表示するのは8行目のTitle: <data:p.title/>です。

data:pには投稿データが入ります。p.titleは投稿データpの中のタイトルを指します。

これが7行目と9行目の<b:includable id='post' var='p'></b:includable>に挟まれていますので7行目<b:includable id='post' var='p'>が呼び出されると8行目Title: <data:p.title/>が実行されます。

 7行目<b:includable id='post' var='p'>はpという変数を引き渡されるpostという名の関数に相当します。idが関数名に相当し、varが引数となります。

この7行目<b:includable id='post' var='p'>が3行目 <b:include name='post' data='i'/>で呼び出されています。

3行目<b:include name='post' data='i'/>はpostという名の7行目<b:includable></b:includable>を呼び出して変数iを渡します。

3行目<b:include name='post' data='i'/>は2行目と4行目の<b:loop var='i' values='posts'> </b:loop>で挟まれています。

2行目<b:loop var='i' values='posts'> </b:loop>は投稿データの集合体であるpostsの投稿データの数だけiに各投稿データを代入して3行目<b:include name='post' data='i'/>を繰り返します。

この2行目<b:loop> </b:loop>は1行目と5行目の<b:includable id='main'> </b:includable>で挟まれているのでmainという名の1行目<b:includable></b:includable>が呼び出されると実行されます。

<b:include name='main'/>は自動的に埋め込まれているのでmainという名の1行目<b:includable></b:includable>は一番初めに自動的に呼び出されます。

<b:includable></b:includable>が<b:include />で呼び出される関数に相当するとわかれば結構テンプレートが読めるようになりました。

data: タグでブログの各データを取り出す


Layouts Data Tags - Blogger Help

公式ヘルプも英語のものしかないですがdata:タグで呼び出すことにできるものがわかります。

Bloggerのテンプレートをいじる - Aragger ここのがわかりやすいかもしれません。

上の例の投稿データの集合体postsはBlog Postsの項に解説がありpostsの中の各postはdateHeader, id, title, body, autho, url、、、などたくさんデータを持っています。

サブ項目は"."で繋いで呼び出します。

投稿データpostsの中の投稿データpのタイトルであれば先の例のようにp.titleというふうにします。

参考にしたサイト


レイアウト用ウィジット タグ - Blogger ヘルプ
データ、ループ、if/Elseの解説もあります。

Layouts Data Tags - Blogger Help
公式ヘルプ dataタグの解説。英語しかありません。

Bloggerのテンプレートをいじる - Aragger
公式ヘルプより読みやすいです。

次の関連記事:Blogger:テンプレート編集(3)セクションはページ内の領域を表す

PR

0 件のコメント:

コメントを投稿