→ コンテンツ(記事)の本文を入稿するには、リッチエディタを利用します。複雑なデータの場合は、繰り返しフィールドを使ってその他のフィールドを併用することもできます。
本文データの持ち方には、さまざまな方法が考えられますが、主に以下の2種類の方法が用いられることが多いです。
1. リッチエディタを使う
APIスキーマのリッチエディタを利用する方法です。
microCMSのリッチエディタは、いわゆるWYSIWYGエディタです。一般的な記事であれば、リッチエディタのみで本文を表現できるケースも多くあります。
リッチエディタの使い方については「リッチエディタの操作方法」をご覧ください。
2. 繰り返しフィールドを利用し、リッチエディタとその他のフィールドを併用する
繰り返しフィールドを利用してリッチエディタと他のフィールドを組み合わせると、リッチエディタのみでは表現できない本文の内容を入稿できます。
例えば、テキストエリアと組み合わせると、特殊なHTMLの記述をそのまま入稿することも可能です。
設定手順(管理画面)
API設定方法の一例として、リッチエディタとテキストエリアを持つ繰り返しフィールドを設定する手順をご紹介します。
1. 管理画面の任意のAPIから[カスタムフィールド]をクリックする
2. [追加する]ボタンをクリックする
3. 「カスタムフィールド名」と「カスタムフィールドID」を入力し、[次へ]をクリックする
まず、リッチエディタ用のカスタムフィールドを作成します。
4. APIスキーマ(インターフェース)を定義する
リッチエディタ用のフィールドを1つ設定します。
以下のようにAPIスキーマを設定します。
フィールドID | 表示名 | 種類 |
rich | リッチテキスト | リッチエディタ |
5. 同様に、テキストエリア用のカスタムフィールドも作成します(3〜4と同様)
6. [API設定]をクリックし、「API設定画面」で[APIスキーマ]クリックする
7. [フィールドを追加]をクリックし、繰り返しフィールドを指定する
ここで、記事本文用のフィールドとして、繰り返しフィールドを指定します。その際に先ほど作成した2つのカスタムフィールドを利用するよう設定します。
8. [決定]をクリックした後、[変更する]をクリックして保存する
入稿方法(管理画面)
入稿する際は、コンテンツの新規作成画面で[フィールドを追加]をクリックすると、カスタムフィールドの選択画面が表示されます。
ここで、先ほど設定した2つのカスタムフィールドから、どちらのフィールドを利用するかを選択できます。
内容に応じて、カスタムフィールドを使い分けながら入稿していきます。
リッチエディタとその他のフィールドを組み合わせて本文を入稿する方法について、以下のブログでも具体的な方法をご紹介しています。ぜひ併せてご覧ください。
実装方法
繰り返しフィールドを利用した場合のAPIレスポンスは、次のようになります(body部分)。
{
"id": "1ot241e5b",
"createdAt": "2020-12-17T08:14:19.813Z",
"updatedAt": "2020-12-17T08:15:57.703Z",
"publishedAt": "2020-12-17T08:14:19.813Z",
"revisedAt": "2020-12-17T08:15:57.703Z",
"title": "一つ目の記事",
"body": [
{
"fieldId": "rich",
"richText": "<h1 id=\"h00bd8f82dd\">タイトル</h1><p>こちらに記事内容を記述</p>"
},
{
"fieldId": "html",
"html": "<table><tr><td>テスト</td></tr></table>"
}
]
}
レスポンスは配列として返却されます。またfieldId
というキーに対して、該当のカスタムフィールドのIDがセットされます。
表示側では、こちらのfieldId
をもとに、ロジックを書き換えることで、両方のパターンに対応することができます。
以下はReactでの実装のイメージです。
export const Main = ({ body }) => (
<main>
{body.map((item, i) =>
item.fieldId === 'rich' ? (
<Post key={i} data={item.richText} />
) : item.fieldId === 'html' ? (
<HtmlBlock key={i} data={item.html} />
) : null
)}
</main>
);