デフォルトのコントロール/オプションの提供

theme.jsonは設定ツールとして機能するため、利用可能なオプションを詳細に定義する方法は多数あります。このセクションでは、いくつかのブロックにまたがる機能を示し、さまざまなアクセスレベルを可能にするため、デュオトーンを例として使用します。

各画像関連ブロックに対してCoreオプションとカスタマイズが利用可能なデュオトーン:

  1. {
  2. "version": 3,
  3. "settings": {
  4. "color": {
  5. "customDuotone": true,
  6. "duotone": [
  7. ]
  8. }
  9. }
  10. }

テーマで定義されたカラオプション、Coreオプション、および各画像関連ブロックに対してカスタマイズが利用可能なデュオトーン:

  1. {
  2. "version": 3,
  3. "settings": {
  4. "color": {
  5. "duotone": [
  6. {
  7. "colors": [ "#000000", "#ffffff" ],
  8. "slug": "foreground-and-background",
  9. "name": "Foreground and background"
  10. },
  11. {
  12. "colors": [ "#000000", "#ff0200" ],
  13. "slug": "foreground-and-secondary",
  14. "name": "Foreground and secondary"
  15. },
  16. {
  17. "colors": [ "#000000", "#7f5dee" ],
  18. "slug": "foreground-and-tertiary",
  19. "name": "Foreground and tertiary"
  20. },
  21. ]
  22. }
  23. }
  24. }

Post Featured Imageブロックに対して定義されたデフォルトオプションとすべてのカスタマイズが利用可能なデュオトーン:

  1. {
  2. "version": 3,
  3. "settings": {
  4. "color": {
  5. "custom": true,
  6. "customDuotone": true
  7. },
  8. "blocks": {
  9. "core/post-featured-image": {
  10. "color": {
  11. "duotone": [
  12. {
  13. "colors": [ "#282828", "#ff5837" ],
  14. "slug": "black-and-orange",
  15. "name": "Black and Orange"
  16. },
  17. {
  18. "colors": [ "#282828", "#0288d1" ],
  19. "slug": "black-and-blue",
  20. "name": "Black and Blue"
  21. }
  22. ],
  23. "customDuotone": true,
  24. "custom": true
  25. }
  26. }
  27. }
  28. }
  29. }

Post Featured Imageブロックに対して定義されたデフォルトオプションとCoreオプションのみが利用可能なデュオトーン(カスタマイズなし):

  1. {
  2. "version": 3,
  3. "settings": {
  4. "color": {
  5. "custom": true,
  6. "customDuotone": true
  7. },
  8. "blocks": {
  9. "core/post-featured-image": {
  10. "color": {
  11. "duotone": [
  12. {
  13. "colors": [ "#282828", "#ff5837" ],
  14. "slug": "black-and-orange",
  15. "name": "Black and Orange"
  16. },
  17. {
  18. "colors": [ "#282828", "#0288d1" ],
  19. "slug": "black-and-blue",
  20. "name": "Black and Blue"
  21. }
  22. ],
  23. "customDuotone": false,
  24. "custom": false
  25. }
  26. }
  27. }
  28. }
  29. }

theme.jsonによるインターフェースオプションの制限

ブロックごとのオプションの制限

デフォルト値を定義することに加えて、theme.jsonを使用すると、オプションを完全に削除し、代わりにテーマが設定したものに依存することもできます。以下は、同じ段落ブロックの2つの極端な例を示すビジュアルです:

制限されたインターフェースの画像

デュオトーンの例を続けると、画像ブロックに対してすべてのデュオトーン機能への完全なアクセスを許可し、Post Featured Imageブロックのみを次のように制限することができます:

  1. {
  2. "version": 3,
  3. "settings": {
  4. "color": {
  5. "custom": true,
  6. "customDuotone": true
  7. },
  8. "blocks": {
  9. "core/image": {
  10. "color": {
  11. "duotone": [],
  12. "customDuotone": true,
  13. "custom": true
  14. }
  15. },
  16. "core/post-featured-image": {
  17. "color": {
  18. "duotone": [],
  19. "customDuotone": false,
  20. "custom": false
  21. }
  22. }
  23. }
  24. }
  25. }

theme.jsonでオプションをオン/オフにする方法についてはこちらをお読みください

デフォルトレイアウトの継承を無効にする

グループブロックのようなコンテナブロックに対して「デフォルトレイアウトを継承する」設定を無効にするには、次のセクションを削除します:

  1. "layout": {
  2. "contentSize": null,
  3. "wideSize": null
  4. },

グローバルにオプションを制限する

ブロックまたはクラシックテーマでtheme.jsonを使用する場合、これらの設定により、デフォルトのカラーおよびタイポグラフィコントロールがグローバルに有効になるのを防ぎ、可能なことを大幅に制限します:

  1. {
  2. "version": 3,
  3. "settings": {
  4. "layout": {
  5. "contentSize": "750px"
  6. },
  7. "color": {
  8. "background": false,
  9. "custom": false,
  10. "customDuotone": false,
  11. "customGradient": false,
  12. "defaultGradients": false,
  13. "defaultPalette": false,
  14. "text": false
  15. },
  16. "typography": {
  17. "customFontSize": false,
  18. "dropCap": false,
  19. "fontStyle": false,
  20. "fontWeight": false,
  21. "letterSpacing": false,
  22. "lineHeight": false,
  23. "textDecoration": false,
  24. "textTransform": false
  25. }
  26. }
  27. }

上記のいずれかを有効にするには、変更したい値をtrueに設定するだけで、より詳細に制御できます。