Settings

Last modified:

Blockstudio includes a powerful settings API, that allows setting options via a blockstudio.json file inside your theme folder and/or filters. Additionally, allowed users are able to change the settings visually inside the admin area.

Via

JSON

If a blockstudio.json file is present inside your theme folder, it will be used to set the default options for the current site. A JSON schema is available to validate the file and help with autocompletion when used in an IDE.

The following properties are available.

block.json

            {
      "$schema": "https://app.blockstudio.dev/schema/blockstudio",
      "users": {
        "ids": [],
        "roles": []
      },
      "assets": {
        "enqueue": true,
        "minify": {
            "css": false,
            "js": false
        },
        "process": {
            "scss": false
        }
      },
      "editor": {
        "formatOnSave": false,
        "assets": [],
        "markup": false
      },
      "library": false
    }

      
Copy

Filters

Alternatively you can use the blockstudio/settings/${setting} filter to set options via PHP for more flexibility.

functions.php

            add_filter('blockstudio/settings/assets/enqueue', '__return_false');
    add_filter('blockstudio/settings/editor/formatOnSave', '__return_true');
    add_filter('blockstudio/settings/library', '__return_true');

      
Copy

Options set via the blockstudio/settings/${setting} filter will override the ones set via the blockstudio.json file. Both methods can be used together.

Admin

Allowed users from the blockstudio/settings/users/ids and blockstudio/settings/users/roles filters are able to change the settings visually inside the admin area. If the Save as JSON checkbox is checked, the settings will be saved to the JSON file, otherwise they will be saved to the database into the options table.

Settings set via filters will be grayed out and disabled inside the admin area.

Settings

Users

Settings related to allowed users with access to the settings and editor.

users/ids

List of user IDs with access to the settings and editor.

functions.php

                                                      add_filter('blockstudio/settings/users/ids', function() {
                return [1];
              });

      
Copy

users/roles

List of user roles with access to the settings and editor.

functions.php

                                                      add_filter('blockstudio/settings/users/roles', function() {
                return ["administrator","editor"];
              });

      
Copy

Assets

Settings related to asset management.

assets/enqueue

Enqueue assets in frontend and editor.

functions.php

                                            add_filter('blockstudio/settings/assets/enqueue', function() {
                return true;
              });

      
Copy

assets/minify/css

Minify CSS.

functions.php

                                            add_filter('blockstudio/settings/assets/minify/css', function() {
                return false;
              });

      
Copy

assets/minify/js

Minify JS.

functions.php

                                            add_filter('blockstudio/settings/assets/minify/js', function() {
                return false;
              });

      
Copy

assets/process/scss

Process SCSS in .css files.

functions.php

                                            add_filter('blockstudio/settings/assets/process/scss', function() {
                return false;
              });

      
Copy

assets/process/scssFiles

Process .scss files to CSS.

functions.php

                                            add_filter('blockstudio/settings/assets/process/scssFiles', function() {
                return true;
              });

      
Copy

Tailwind

Settings related to Tailwind.

tailwind/enabled

Enable Tailwind.

functions.php

                                            add_filter('blockstudio/settings/tailwind/enabled', function() {
                return false;
              });

      
Copy

tailwind/config

Tailwind configuration.

functions.php

                                                                          add_filter('blockstudio/settings/tailwind/config', function() {
                return [ "theme" => [ "extend" => [ "colors" => [ "primary" => "pink" ] ] ] ];
              });

      
Copy

Editor

Settings related to the editor.

editor/formatOnSave

Format code upon saving.

functions.php

                                            add_filter('blockstudio/settings/editor/formatOnSave', function() {
                return false;
              });

      
Copy

editor/assets

Additional asset IDs to be enqueued.

functions.php

                                                      add_filter('blockstudio/settings/editor/assets', function() {
                return ["my-stylesheet","another-stylesheet"];
              });

      
Copy

editor/markup

Additional markup to be added to the end of the editor.

functions.php

                                                                add_filter('blockstudio/settings/editor/markup', function() {
                return '<style>body { background: black; }</style>';
              });

      
Copy

Blockeditor

Settings related to Gutenberg.

blockEditor/disableLoading

Disable loading of blocks inside the Block Editor.

functions.php

                                            add_filter('blockstudio/settings/blockEditor/disableLoading', function() {
                return false;
              });

      
Copy

blockEditor/cssClasses

Stylesheets whose CSS classes should be available for choice in the class field.

functions.php

                                                      add_filter('blockstudio/settings/blockEditor/cssClasses', function() {
                return ["my-stylesheet","another-stylesheet"];
              });

      
Copy

blockEditor/cssVariables

Stylesheets whose CSS variables should be available for autocompletion in the code field.

functions.php

                                                      add_filter('blockstudio/settings/blockEditor/cssVariables', function() {
                return ["my-stylesheet","another-stylesheet"];
              });

      
Copy

Library

Add block library.

functions.php

                                            add_filter('blockstudio/settings/library', function() {
                return false;
              });

      
Copy