コンテンツにスキップ

コンテンツタイプを作る

コンテンツタイプは、エントリーを入れる箱です。「ブログ記事」「お知らせ」など、入れたいデータの種類ごとに作ります。このページでは、コンテンツタイプを作り、入力欄になるフィールドを決めるまでを説明します。

  • スペースで[コンテンツタイプの作成とスキーマの変更]の権限が要ります。初めからあるロールでは、[オーナー]と[管理者]です
  • 先にスペースを作っておきます(クイックスタートの「3. スペースを作る」)

コンテンツタイプを作るには、次のようにします。

  1. 管理画面でスペースを開き、[コンテンツタイプを作成]を押します。左のメニューの[コンテンツ]の横にある[+]でも、同じ画面が開きます。
  2. 「どんなデータを入れますか?」で、[コレクション]か[シングル]を選んで、[次へ]を押します。
  3. [コンテンツタイプ名]に、名前を入れます(例:「ブログ記事」)。
  4. [エンドポイント]に、英小文字・数字・ハイフンで名前を入れて(例:「posts」)、[次へ]を押します。
  5. 「スキーマをどう始めますか?」で始め方を選んで、[作成]を押します。

「コンテンツタイプ「ブログ記事」を作りました」と表示されます。フィールドのある始め方を選んだときは、エントリーの一覧の画面が開きます。[空から作る]を選んだときは、[スキーマ]のタブが開きます。続けて、下の「フィールドを足す」でフィールドを決めます。

形式 入れるもの 例
コレクション 同じ形のエントリーを、いくつでも ブログ記事、お知らせ、商品、スタッフ紹介
シングル エントリーを 1 件だけ サイトの設定、トップページの文言、会社概要

形式は、あとから変えられません。

[エンドポイント]は、Content API の URL に入る名前です。[エンドポイント]が「posts」なら、https://<ホスト名>.hakocms.net/api/v1/content/posts でエントリーを取り出せます。

  • 英小文字・数字・ハイフンで、64 文字まで。先頭にハイフンは使えません
  • 同じスペースの中で、ほかのコンテンツタイプと同じ名前は使えません
  • [コンテンツタイプ名]を英字で入れると、[エンドポイント]に候補が入ります。日本語の名前では入らないので、自分で入れます
  • あとから変えられます(下の「名前とエンドポイントを変える」)
始め方 作られるフィールド 選べる形式
空から作る なし。スキーマエディタで決める 両方
ブログ記事 タイトル・説明・アイキャッチ・本文 コレクション
お知らせ タイトル・日付・本文 コレクション
サイト設定 サイト名・説明・OGP 画像 シングル
JSON を読み込む 貼り付けた JSON のとおり 両方

[JSON を読み込む]では、ほかのスペースのスキーマエディタの[JSON で編集]に出る JSON を、[スキーマの JSON]に貼り付けます。同じ形のコンテンツタイプを、別のスペースにも作りたいときに使います。

フィールドは、エントリーの入力欄です。タイトルや本文など、入れたい項目ごとに足します。

フィールドを足すには、次のようにします。

  1. 左のメニューで、コンテンツタイプの名前を押します。
  2. [スキーマ]のタブを押します。
  3. [フィールドを追加]を押します。
  4. 種類の一覧から、入れたいデータに合う種類を選びます。右にフィールドの設定の欄が開きます。
  5. [表示名]に、入力欄に出す名前を入れます(例:「タイトル」)。
  6. [フィールド ID]に、英数字と _ で ID を入れます(例:「title」)。
  7. (省略可)[説明]に、入力する人に向けた説明を入れます。入力欄の下に出ます。
  8. (省略可)[入力の決まり]で、[必須]などを決めます。
  9. [完了]を押します。
  10. [スキーマを保存]を押します。

「保存しました」と表示されます。保存するまでは、画面の上に「未保存の変更 1」のように、まだ保存していない変更の数が出ます。

[フィールド ID]は、Content API の JSON のキーになります。保存したあとは変えられません。 [表示名]を英字で入れると、[フィールド ID]に候補が入ります。

種類 入れるもの
テキスト タイトルや名前など、1 行の文字
テキストエリア 説明など、改行を含む文字
リッチエディタ 見出し・リスト・画像などを含む本文
画像 1 枚の画像(サムネイル、OGP など)
複数画像 並べた複数の画像(ギャラリーなど)
ファイル PDF などのファイル
日時 日時か日付(イベントの日など)
真偽値 オン・オフ(注目の記事、など)
セレクト 決まった選択肢から選ぶ(カテゴリなど)
数字 数(価格、順位など)
参照 ほかのコンテンツタイプのエントリーを 1 つ参照する(著者など)
複数参照 ほかのコンテンツタイプのエントリーを複数参照する(関連記事など)
カスタム カスタムフィールド(いくつかの欄のまとまり)を 1 つ
繰り返し カスタムフィールドを、いくつでも並べる(種類を混ぜられる)

種類ごとに決められる入力の決まり(最大文字数、選択肢など)と、API で返る値の形は、フィールドの種類にあります。

カスタムフィールドは、いくつかの欄をまとめた入れ物です。たとえば「見出し」と「本文」と「画像」をまとめて 1 つの段落にし、[繰り返し]のフィールドで好きな数だけ並べられます。

  1. [スキーマ]のタブの下のほうの[カスタムフィールド]で、[カスタムフィールドを作成]を押します。
  2. [名前]と[ID]を入れて、[完了]を押します。
  3. カスタムフィールドの枠の中の[<名前> にフィールドを追加]を押して、中に入れるフィールドを足します。足し方は、上の「フィールドを足す」の手順 4〜9 と同じです。
  4. [フィールドを追加]で、[カスタム]か[繰り返し]のフィールドを足します。
  5. [カスタム]なら[カスタムフィールド]で、[繰り返し]なら[使えるカスタムフィールド]で、手順 2 で作ったカスタムフィールドを選びます。
  6. [完了]を押してから、[スキーマを保存]を押します。

カスタムフィールドの中には、[カスタム]と[繰り返し]のフィールドは置けません。

保存したフィールドを変えるには、[スキーマ]のタブでフィールドの行を押し、設定を変えて[完了]を押してから、[スキーマを保存]を押します。

  • 並べ替え: 行の左のつまみをドラッグします。つまみを選んで ↑ ↓ キーでも動かせます
  • 種類: 値の形が同じ種類にだけ変えられます([テキスト]と[テキストエリア]など)
  • 削除: 設定の欄の[削除]を押します。削除したフィールドの値は、エントリーに残っています。[削除したフィールド]を開いて[戻す]を押すと、値ごと戻ります
  • JSON で編集: 画面の上の[JSON で編集]を押すと、スキーマ全体を JSON で直せます。[フィールド]を押すと、元の画面に戻ります

今のエントリーが合わなくなるとき

Section titled “今のエントリーが合わなくなるとき”

[必須]を付ける、最大文字数を減らすなど、今のエントリーが合わなくなる変更を保存すると、「既存のエントリーが違反します」と表示され、合わなくなるエントリーの数が出ます。

  • [適用する]を押すと、スキーマを保存します。エントリーの値は変わりません。合わなくなったエントリーは、次に保存するときに直すよう求められます
  • [キャンセル]を押すと、保存しません

[重複を許さない]を付けたときに、すでに同じ値のエントリーがあると、保存できません。画面に出る、重なっている値とエントリーの ID を見て、エントリーを直してから保存し直します。

ほかの人が同じスキーマを先に保存していたときは、「ほかの人がスキーマを更新しました」と表示されます。[読み込み直す]を押して、もう一度変更します。

名前とエンドポイントを変える

Section titled “名前とエンドポイントを変える”
  1. コンテンツタイプの画面で、[コンテンツタイプ設定]のタブを押します。
  2. [コンテンツタイプ名]か[エンドポイント]を変えます。
  3. [変更を保存]を押します。

[エンドポイント]を変えたときは、「エンドポイントを変えますか?」と表示されます。エンドポイントを変えると、Content API の URL も変わります。 古い URL を使っているサイトは、エントリーを取り出せなくなります。サイトの側の URL も直してから、[変更を保存]を押します。

コンテンツタイプを削除すると、その中のエントリーもすべて削除されます。元に戻せません。

  1. コンテンツタイプの画面で、[コンテンツタイプ設定]のタブを押します。
  2. [危険な操作]の[コンテンツタイプを削除]を押します。
  3. 確かめの画面で、コンテンツタイプの[エンドポイント]の値を入れます。
  4. [コンテンツタイプを削除]を押します。

「コンテンツタイプ「ブログ記事」を削除しました」と表示されます。

左のメニューの[コンテンツ]の下に、作ったコンテンツタイプの名前が出ていることを確かめます。名前を押すと、画面の上に GET /api/v1/content/<エンドポイント> が表示されます。横のボタンで、Content API の URL をコピーできます。