ホーム > サポート・マニュアル > チュートリアル > カスタムフィールド > カスタムフィールドの基本的な使い方(後編)

カスタムフィールドの情報を表示する

カスタムフィールドの情報を表示するには、フィールドモジュールを使う方法と、各ビルトインモジュールを使う方法があります。

フィールドモジュールを使う方法

フィールドモジュールの使用例は、company1テーマに、Blog_Fieldの利用例が組み込まれています。(参考:第7回 カスタムフィールドを使ってみる)

カテゴリーのカスタムフィールドであれば、以下のような記述でカスタムフィールドの情報を読み出せます。この例では、categoryLeadTextという名前で、そのカテゴリーを説明する文章を設定している想定です。

<!-- BEGIN_MODULE Category_Field -->
{categoryLeadText}
<!-- END_MODULE Category_Field -->

ビルトインモジュールの中で表示する方法

今回のチュートリアルでは前回用意したエントリーのカスタムフィールドを元に、Entry_Headlineを利用して、表示させる方法を紹介します。

ビルトインモジュールとカスタムフィールド

一部のビルトインモジュールでは、フィールドモジュールを使わなくてもカスタムフィールドの情報を利用することができます。


リファレンスの変数表より引用

リファレンス:ビルトインモジュールの変数表を参照すると、左図のような記述を含むモジュールがいくつかあります。これは、そのループ内でカスタムフィールドを利用できるという表記です。

左図の例では、entry:loop内でエントリーのカスタムフィールドを出力できるという意味になります。

  • Entry_List
  • Entry_Headline
  • Entry_Photo
  • Entry_Summary
  • Entry_Body
  • Category_EntryList

以上のモジュールは、entry:loop内でエントリーのカスタムフィールドを出力できます。また、Category_EntryListについてはcategory:loop内でカテゴリーのカスタムフィールドを出力することもできます。


色々な出力方法

カスタムフィールドの出力には、色々な方法があります。まずは単純な出力をしてみましょう。前回のチュートリアルでは、「今聴いている音楽」というカスタムフィールドをlisteningという名前で登録しました。

<!-- BEGIN_MODULE Entry_Headline --><ul><!-- BEGIN entry:loop -->
<li><span>{date#y}.{date#m}.{date#d} | {listening}の日</span> : <a href="{url}">{title}</a>
<!-- BEGIN category:veil --> 【{categoryName}】<!-- END category:veil --></li><!-- END entry:loop -->
</ul><!-- END_MODULE Entry_Headline -->

{listeining}という記述で、カスタムフィールドの情報を出そうとしています。カスタムフィールドの名前を { } (波括弧) で囲って記述することで、その情報を出すことができます。


上のサンプルーコードの出力例


■ touchブロックで出力内容を後から編集可能にする

<p>
<!-- BEGIN flag:touch#possible -->可能です<!-- END flag:touch#possible -->
<!-- BEGIN flag:touch#impossible -->不可能です<!-- END flag:touch#impossible -->
</p>

上記の例では、flagというカスタムフィールドの情報がpossibleまたはimpossibleであった場合で出力内容を切り替えています。カスタムフィールドの情報をそのまま表示してしまうと、このような定型的な出力が必要なときに、後からの修正が行えなくなってしまいます。

そこで、このようなtouchブロックを使った記述をすることで、そのカスタムフィールドの情報によって出力される情報を後から修正することができます。

■ veilブロックで無駄な出力を抑制する

<!-- leadtext という名前でエントリーの説明文のカスタムフィールドがあります -->
<ul><!-- BEGIN entry:loop -->
<li>{title}<span>{leadtext}</span></li>
<!-- END entry:loop --></ul>

<!-- もしも leadtext に入力が無いエントリーが存在するとこのようになります -->
<ul>
<li>タイトル<span>説明文です</span></li>
<li>たいとる<span></span></li>
<li>TITLE<span>LEADTEXT</span></li>
</ul>

出力結果の2つ目のli要素に、空のspanが出力されてしまっています。このように、場合によっては無駄なタグが出力されてしまうというときは表示されないこともある部分を囲うように記述を加えます。

<!-- leadtext という名前でエントリーの説明文のカスタムフィールドがあります -->
<ul><!-- BEGIN entry:loop -->
<li>{title}<!-- BEGIN leadtext:veil --><span>{leadtext}</span><!-- END leadtext:veil --></li>
<!-- END entry:loop --></ul>

{leadtext}を囲うようにveilブロックを追加しました。このようなブロックで囲うことで、その中の情報が空のときには、ブロックの中が丸ごと無視されます。そうすることで、付随するタグなどが無駄に出力されることがなくなります。

ここまでが入出力の基礎です

次回以降のチュートリアルでは、実際の製作中に必要になる使い方や機能について、より詳しく説明していきます。


ドキュメントの内容に関するお知らせフォーム

内容に誤り・現行バージョンと異なる部分がありましたら、下記のフォームよりお知らせください。


お名前
 
メールアドレス(任意)
 
お知らせ内容
Cookieに保存


携帯アクセス解析