Constructor.
Description
Will populate object properties from the provided arguments.
See also
Parameters
$block_type
stringrequired- Block type name including namespace.
$args
array|stringoptional- Array or string of arguments for registering a block type. Any arguments may be defined, however the ones described below are supported by default.
api_version
stringBlock API version.title
stringHuman-readable block type label.category
string|nullBlock type category classification, used in search interfaces to arrange block types by category.parent
string[]|nullSetting parent lets a block require that it is only available when nested within the specified blocks.ancestor
string[]|nullSetting ancestor makes a block available only inside the specified block types at any position of the ancestor’s block subtree.allowed_blocks
string[]|nullLimits which block types can be inserted as children of this block type.icon
string|nullBlock type icon.description
stringA detailed block type description.keywords
string[]Additional keywords to produce block type as result in search interfaces.textdomain
string|nullThe translation textdomain.styles
array[]Alternative block styles.variations
array[]Block variations.selectors
arrayCustom CSS selectors for theme.json style generation.supports
array|nullSupported features.example
array|nullStructured data for the block preview.render_callback
callable|nullBlock type render callback.variation_callback
callable|nullBlock type variations callback.attributes
array|nullBlock type attributes property schemas.uses_context
string[]Context values inherited by blocks of this type.provides_context
string[]|nullContext provided by blocks of this type.block_hooks
string[]Block hooks.editor_script_handles
string[]Block type editor only script handles.script_handles
string[]Block type front end and editor script handles.view_script_handles
string[]Block type front end only script handles.editor_style_handles
string[]Block type editor only style handles.style_handles
string[]Block type front end and editor style handles.view_style_handles
string[]Block type front end only style handles.
Default:
array()
Source
public function __construct( $block_type, $args = array() ) {
$this->name = $block_type;
$this->set_props( $args );
}
Changelog
Version | Description |
---|---|
6.5.0 | Added the allowed_blocks , variation_callback , and view_style_handles properties. |
6.4.0 | Added the block_hooks property. |
6.3.0 | Added the selectors property. |
6.1.0 | Added the editor_script_handles , script_handles , view_script_handles , editor_style_handles , and style_handles properties.Deprecated the editor_script , script , view_script , editor_style , and style properties. |
6.0.0 | Added the ancestor property. |
5.9.0 | Added the view_script property. |
5.8.0 | Added the variations property. |
5.6.0 | Added the api_version property. |
5.5.0 | Added the title , category , parent , icon , description , keywords , textdomain , styles , supports , example , uses_context , and provides_context properties. |
5.0.0 | Introduced. |
The documentation above suggests that
$args['script']
and$args['style']
will be loaded for the “front end”, however in fact it is loaded for both the editor and the front end. If you want certain scripts and styles to be loaded in the front end only, you have to independently load those after a conditional check. UnfortunatelyWP_Block_Type::__construct
(and soregister_block_type()
andregister_block_type_from_metadata()
) does not support loading scripts or styles exclusively for the front end.is_admin()
in those methods would work as a constraint for the frontend.$args['script']
works in WP 5.8 if the handle of the script used inwp_register_script
is passed. Don’t add the source here but register the script first via thewp_enqueue_scripts
filter.Note that the new to 5.9 view_script parameter only loads the script if render_callback is not defined. See /wp-includes/class-wp-block.php:266: