外部AI向けガイドに戻る
LiteWord テーマ情報
{
"name": "wdl/custom-title-accordion-1",
"title": "見出しアコーディオン 01",
"category": "lw-heading",
"description": "アコーディオン機能付き見出しブロック",
"aiHint": {
"description": "押すと開く見出しだけのブロック。中身は持たず、**この見出しより後ろに置いたブロック**が開閉の対象になる。長い説明・規約・手順を畳みたいときに",
"excludeFromAutoSelect": false,
"contentAttributes": [
"mainTitle",
"subTitle"
],
"imageAttributes": [],
"notes": "🚨 InnerBlocks を持たない。中身を入れる場所が無いブロックで、save() が見出しの直後にインライン script を書き出し、表示のときに【自分より後ろの兄弟要素を、次の“同じタグ名”の見出し(headingLevel が同じもの)か .last_content に当たるまで】かき集めて隠し div に入れる。つまり **最後の見出しの後ろに置いたものは、開くまで見えなくなる**。ボタンも注釈もスペーサーも巻き込まれる。.last_content は page.php が本文のいちばん最後に1つ出すだけなので、そこまで全部飲み込む。🚨 だから使うときは【最後の項目の中身の後ろに、同じ headingLevel の見出しをもう1つ置いて終端にする】こと。それが無いと後続が消える。🚨 headingLevel を 2 にしない。ページの他のセクションの見出し(lw-pr-custom-title-15 など)も h2 なので、h2 にすると次のセクションまで飲み込む。3 以下にする。⚠️ 開閉させたい項目が Q と A の繰り返しなら、このブロックではなく lw-qa-1(contents 配列を持つFAQアコーディオン)を使うほうが安全で、書き換えも簡単。⚠️ 属性名 mainTitleColor は名前に反して subTitle の色にしか当たらない(save() で確認)。borderColor / iconColor / mainTitleColor はどれもインラインstyleに直接入るので var(--color-main) を渡してよい。項目どうしは CSS で margin-top:0 になるので間にスペーサーを入れない。"
},
"attributes": {
"subTitle": {
"type": "string",
"default": "STEP 1",
"aiHint": {
"role": "subheading",
"contentGuide": "ステップ番号やカテゴリ名。3〜10文字",
"example": "STEP 1"
}
},
"mainTitle": {
"type": "string",
"default": "WordPressの初期設定",
"aiHint": {
"role": "heading",
"contentGuide": "セクション見出し。5〜20文字",
"example": "WordPressの初期設定"
}
},
"headingLevel": {
"type": "number",
"default": 2,
"aiHint": {
"skip": true
}
},
"mainTitleColor": {
"type": "string",
"default": "var(--color-main)",
"aiHint": {
"skip": true
}
},
"borderColor": {
"type": "string",
"default": "var(--color-main)",
"aiHint": {
"skip": true
}
},
"borderWidth": {
"type": "number",
"default": 1,
"aiHint": {
"skip": true
}
},
"backgroundColor": {
"type": "string",
"default": "",
"aiHint": {
"skip": true
}
},
"iconColor": {
"type": "string",
"default": "var(--color-main)",
"aiHint": {
"skip": true
}
}
}
}