FC2 ブログのテンプレート用変数
FC2 ブログのテンプレートを編集するときに必要になってくる変数についての解説です。
変数の一覧自体は公式マニュアルがあります。一覧だとわかいりづらい部分も多いので、
変数と FC2 ブログのテンプレートの基本的な構成について書いてみました。
ブロック変数と単変数
FC2 ブログのテンプレート変数には ブロック変数 と 単変数 があります。ブロック変数
ブロック変数は html のコメント形式で指定します。<!--xxxx--> ブロック内 <!--/xxxx-->このブロック内の記述が特定の条件のときだけ使用されたり、繰り返して使用されたりします。
プログラミング言語でいうと if や while(for) のブロックと同じような機能になります。
テンプレートの html ファイルは 1 つですが、後述するようにブログではいろいろなモードがあり、 このブロック変数を使って、モードごとに表示内容を切り替えるのに使用します。
同じような記述方法で繰り返しにもなります。
条件分岐になるか、ループになるかは変数によって変わります。
単変数
単変数は以下のような型式で変数の部分が置き換わって表示されます。<%xxxx>例えば、 <%blog_name> と記述すると表示するときにはブログの名前になります。
単変数にはこの blog_name のようにどこでも使える変数と、 特定のブロック内でのみ使える変数があります。
モード
FC2 ブログでは 8 つのモードがあります。モード | 名前 | 概要 | このブログ |
---|---|---|---|
トップページ | index | 最新記事を複数表示 | [Home] リンクを選択。 |
ページ記事 | - | 指定ページの記事を複数表示 | トップページから次ページ [Next] などを選択 |
カテゴリ | category | 同一カテゴリの記事を複数表示 | カテゴリの単語を選択 |
タグ | tag | 同一タグの記事を複数表示 | タグを選択 |
日、月別 | date | 同一の日または月の記事を複数表示 | カレンダーから選択 |
個別記事表示 | permanent | 記事を一つだけ表示。コメントなど詳細に記事を表示。 | 記事のタイトルを選択 |
記事一覧 | titlelist | 過去記事の一覧を表示 | [Title List] リンクを選択 |
検索結果表示 | search | 検索にヒットした記事を複数表示 | メニューの入力エリアから検索を実行 |
逆に not_mode_area の変数を使うと内部がそのモードでは表示されなくなります。
<!--mode_area--> mode だけで有効 <!--/mode_area--> <!--not_mode_area--> mode 以外で有効 <!--/not_mode_area-->表のページ記事モードの名前は忘れたわけではありません。 このモードに対するブロック変数は用意されてないのです。
「なんでないの?」 とか 「トップページとわける必要あるの?」 と思われるかも知れません。 私もそう思いますが、実際そうなってしまっています。
ただ、 not_... のブロック変数を使って、 他のモードではないモードということでページ記事の内容を記述することは出来ます。
トップページ(index)、ページ記事、カテゴリ(category)、タグ(tag)、日月別(date)
モードはたくさんありますが、 この節タイトルの 5 つのモードはテンプレートでは、だいたい一緒に書くことができます。 ベースは同じにしておいて、こまかいところで各モードの mode_area を使って切り替えるというのが、 テンプレートを書くときの基本的なスタイルになっています。ここでのモードに対するテンプレートの大まかな構成は以下のような感じです。
<!-- 記事一覧, 検索以外 --> <!--not_titlelist_area--> <!--not_search_area--> <!-- 記事(繰り返し) --> <!--topentry--> <!-- 記事タイトル --> <h2><a href="<%topentry_link>"><%topentry_title></a></h2> <!-- 記事本文 --> <%topentry_body> <!--/topentry--> <!--/not_search_area--> <!--/not_titlelist_area-->まず、not_mode_area のブロック変数を使って、記事一覧, 検索以外のモードとして、5 つのモードを指定しています。
個別表示が抜けていますが、個別表示も一緒に書くことができます。これは次節で説明します。
topentry ブロックが個々の記事内容になります。ここがブログの設定で指定した回数分だけ繰り返されることになります。
topentry ブロック内では次の単変数が使えます。
変数名 | 内容 |
---|---|
<%topentry_link> | 個別表示記事へのリンク |
<%topentry_title> | 記事タイトル |
<%topentry_body> | 記事の内容 |
また、記事タイトルをリンクにして、クリックすると個別記事表示になるようにしています。
個別記事(permanent)
個別記事のモードも前節の記述を使います。先ほどのモードの場合には topentry ブロックの内容は複数回繰り返されますが、 個別記事モードとして使われる場合は 1 回だけ表示されることになります。
また、個別記事表示では、コメント、トラックバック、追記 などの記事の詳細情報も表示されることになります。
コメント、トラックバック
コメント、トラックバックにはそれぞれ comment_area, trackback_area のブロック変数を使います。このブロック内でのみ有効な単変数を使って、 それぞれの内容を記述します。これらのブロックを先ほどの内容に追加します。 これらは premanent_area ブロックで囲まなくても、個別表示モードでしか使用されません。
<!--trackback_area--> トラックバック用の記述 <!--/trackback_area--> <!--comment_area--> コメント用の記述 <!--/comment_area-->
追記
FC2 ブログには、追記というものがあります。これは後から書き足すという意味ではなく、記事のさわりの部分と全文を分けたいときに使います。
topentry ブロック内を追記に対応させて書くと次のようになります。
<!--topentry--> <h2><a href="<%topentry_link>"><%topentry_title></a></h2> <!-- 記事本文(さわりの部分) --> <%topentry_body> <!-- 追記記事へのリンク(「続きを読む」) --> <!--more_link--> <a href="<%topentry_link>#more" title="<%topentry_title>"><%template_extend></a> <!--/more_link--> <!-- 追記本文(残りの部分) --> <!--more--> <div id="more"> <%topentry_more> </div> <!--/more--> <!--/topentry-->追記関連のブロック変数および単変数は以下の表のようになります。
ブロック変数 | 記述対象 | トップページなど | 個別表示モード |
---|---|---|---|
more_link | 追記へのリンク | ○(ただし、追記がある場合) | × |
more | 追記 | × | ○ |
変数名 | 置換後 |
---|---|
<%template_extend> | "続きを読む"という文字列 |
<%topentry_more> | 追記の内容 |
ちなみに <%template_extend> は言語によって文字列の変わる 多言語用変数です。
記事一覧(titlelist)
記事一覧では titlelist ブロック変数の内容が記事の数だけ(上限 500)繰り返されます。以下のサンプルは私のブログで使っているものをシンプルにしたものです。
<!--titlelist_area--> <h2>記事一覧</h2> <ul> <!-- 記事の数だけ繰り返し --> <!--titlelist--> <li> <!-- 記事タイトル --> <a href="<%titlelist_url>" title="<%titlelist_body>"> <%titlelist_title> </a> </li> <!--/titlelist--> </ul> <!--/titlelist_area-->titlelist の中で使用できる単変数は次のものです。
変数 | 内容 |
---|---|
<%titlelist_title> | 記事タイトル |
<%titlelist_url> | 記事の個別表示へのリンク |
<%titlelist_body> | 記事の冒頭をテキスト型式にしたもの(約 20 文字) |
記事一覧モードでは、他のモードと違い、 記事の内容に関して、冒頭以上の内容を表示することはできません。
検索(search)
検索結果表示モード用の私のブログの簡易版です。<!--search_area--> <ul> <!-- 記事の数だけ繰り返し --> <!--topentry--> <li> <!-- 記事タイトル --> <a href="<%topentry_link>"> <%topentry_title> </a> <!-- 記事冒頭 --> <p><%topentry_discription></p> </li> <!--/topentry--> </ul> <!--/search_area--><%topentry_discription> は先ほどの <%titlelist_body> と同じで記事の冒頭部分のテキストになります。
これを利用して検索サイトっぽく検索結果の一覧を表示しています。
topentry のブロック変数はトップページなどのモードと同じものです。 実はこの検索用のモードは私が分けて使っているというだけで、 トップページなどのモードと同じ型式で表示することも出来ます。
テンプレートの基本構成まとめ
今まで出てきたものをあわせて、あげておきます。ここでは、検索モードを特別扱いせずにトップページなどと同じものを使うようにしています。 こうするとモードはたくさんありましたが、 記事一覧とそれ以外の 2 つのパターンだけ書けばよいことになります。
実際のテンプレートはこれにプラグインなども付けますが、 基本的な構成はだいたいこのような感じになると思います。
これが分かっていれば、テンプレートを編集しようとしたとき、 もとのテンプレートの内容を理解しやすいのではないでしょうか。
<!-- ==== 記事一覧 以外のモード ==== --> <!--not_titlelist_area--> <!--topentry--> <h2><a href="<%topentry_link>"><%topentry_title></a></h2> <%topentry_body> <!--more_link--> <a href="<%topentry_link>#more" title="<%topentry_title>"><%template_extend></a> <!--/more_link--> <!--more--> <div id="more"> <%topentry_more> </div> <!--/more--> <!--/topentry--> <!--/not_titlelist_area--> <!-- == 個別表示 モードだけで有効になる部分 == --> <!--trackback_area--> トラックバック用の記述 <!--/trackback_area--> <!--comment_area--> コメント用の記述 <!--/comment_area--> <!-- ==== 記事一覧 モード ==== --> <!--titlelist_area--> <h2>記事一覧</h2> <ul> <!--titlelist--> <li> <a href="<%titlelist_url>" title="<%titlelist_body>"> <%titlelist_title> </a> </li> <!--/titlelist--> </ul> <!--/titlelist_area-->
- 関連記事
-
- ブログでコードハイライトする
- FC2 ブログのテンプレート用変数
- FC2 ブログの検索フォームの改良と自作
- ブログ記事のタグリスト
- ブログ記事のパンくず(カテゴリ)リスト
trackback
まとめteみた.【FC2 ブログのテンプレート用引数】
新規トラックバック
Facebook コメント
コメント