WP_Block_Type::__construct( string $block_type, array|string $args = array() )


Description Description

Will populate object properties from the provided arguments.

Top ↑

See also See also

Top ↑

Parameters Parameters


(string) (Required) Block type name including namespace.


(array|string) (Optional) 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'
    (string) Block API version.
  • 'title'
    (string) Human-readable block type label.
  • 'category'
    (string|null) Block type category classification, used in search interfaces to arrange block types by category.
  • 'parent'
    (array|null) Setting parent lets a block require that it is only available when nested within the specified blocks.
  • 'icon'
    (string|null) Block type icon.
  • 'description'
    (string) A detailed block type description.
  • 'keywords'
    (array) Additional keywords to produce block type as result in search interfaces.
  • 'textdomain'
    (string|null) The translation textdomain.
  • 'styles'
    (array) Alternative block styles.
  • 'variations'
    (array) Block variations.
  • 'supports'
    (array|null) Supported features.
  • 'example'
    (array|null) Structured data for the block preview.
  • 'render_callback'
    (callable|null) Block type render callback.
  • 'attributes'
    (array|null) Block type attributes property schemas.
  • 'uses_context'
    (array) Context values inherited by blocks of this type.
  • 'provides_context'
    (array|null) Context provided by blocks of this type.
  • 'editor_script'
    (string|null) Block type editor script handle.
  • 'script'
    (string|null) Block type front end script handle.
  • 'editor_style'
    (string|null) Block type editor style handle.
  • 'style'
    (string|null) Block type front end style handle.

Default value: array()

Top ↑

Source Source

File: wp-includes/class-wp-block-type.php

	public function __construct( $block_type, $args = array() ) {
		$this->name = $block_type;

		$this->set_props( $args );

Top ↑

Changelog Changelog

Version Description
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.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Bence Szalai

    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. Unfortunately WP_Block_Type::__construct (and so register_block_type() and register_block_type_from_metadata()) does not support loading scripts or styles exclusively for the front end.

You must log in before being able to contribute a note or feedback.