A WordPress plugin with a collection of components for the Gutenberg editor
- Run
nvm useto automatically use the correct version of Node.js - Run
npm installto install dependencies - Run
npm startfor local development
TODO: automate this
- Update plugin versions and run
npm run buildto build assets. Commit and push to remote. - Add tag
git tag v0.1.0and push to remotegit push origin v0.1.0
By default, all blocks are registered. Use this filter to register only the allowed blocks. The example below lists every available block:
add_filter('yard::gutenberg/allowed-blocks', fn () => [
'collapse',
'collapse-item',
'counting-number',
'facetwp',
'icon',
'iconlist',
'iconlist-item',
'slide',
'slider',
'tabs',
'tabs-item',
]);Overwrite the allowed (core) blocks.
add_filter('yard::gutenberg/allowed-core-blocks', $this->registerCoreBlocks(...), 10, 1);
public function registerCoreBlocks($initialAllowedBlocks): array
{
$additionalBlocks = collect([
// 'core/search',
]);
$excludeBlocks = collect([
// 'core/post-featured-image',
]);
return collect($initialAllowedBlocks)
->merge($additionalBlocks)
->reject(fn ($block) => $excludeBlocks->contains($block))
->all();
}By default, all blocks are registered. Use this filter to register only the allowed blocks with a specific prefix. The example adds the tribe prefix:
add_filter('yard::gutenberg/allowed-blocks-whitelisted-prefixes', fn ($prefixes) => [
...$prefixes,
'tribe',
] );Change the default unregistered styles: /src/Hooks/resources/js/default-block-styles.js:
import { addFilter } from '@wordpress/hooks';
addFilter(
'yard.default-unused-styles',
'sage/default-unused-styles',
(styles) => {
return styles.map((item) => {
// Remove 'fill' style from the array, so that it works again
if (item.block === 'core/button') {
return {
...item,
styles: item.styles.filter(style => style !== 'fill')
};
}
return item;
});
}
);Remove specific variations: /src/Hooks/resources/js/default-block-variations.js:
import { addFilter } from '@wordpress/hooks';
// Remove specific variations from the registered list
addFilter(
'yard.default-registered-variations',
'your-project/remove-registered-variations',
(variations) => {
return variations.filter((item) => {
// Remove the custom spacer variation
if (item.block === 'core/spacer' && item.name === 'spacer-with-steps') {
return false; // Exclude this variation
}
// Keep all other variations
return true;
});
}
);Or change an existing variation:
addFilter(
'yard.default-registered-variations',
'your-project/modify-registered-variations',
(variations) => {
return variations.map((item) => {
// Change the height attribute for the spacer variation
if (item.block === 'core/spacer' && item.name === 'spacer-with-steps') {
return {
...item,
attributes: {
...item.attributes,
height: 'var:preset|spacing|9', // New height value
},
};
}
return item;
});
}
);Remove a default unregistered variations so that it works again: /src/Hooks/resources/js/default-block-variations.js:
import { addFilter } from '@wordpress/hooks';
addFilter(
'yard.default-unused-variations',
'your-project/remove-unused-variations',
(variations) => {
return variations.filter((item) => {
if (item.block === 'core/group' && item.variation === 'group-row') {
return false; // Remove this variation so that it works again
}
// Keep all other variations in the unused list
return true;
});
}
);