|

The block „mycat/myblock“ is registered with an invalid category „mycat“

fotografiert von Gabriele Lässer
801 3432

Zu dieser Meldung kamen noch weiter Fehler hinzu, unter anderem Uncaught TypeError: wp.editor.initialize is not a function, der dazu führte, dass Textfelder in Widgets nicht mehr funktionierten.

Im benutzerdefinierten Block, der ursprünglich von Github heruntergeladen und anschließend adaptiert worden war, waren unter anderem RichText-Elemente vorgesehen, und wp-editor war daher in den Abhänigkeiten angeführt.

Der Blocktyp war offenbar nach einem Beispiel auf der Seite https://developer.wordpress.org/reference/functions/register_block_type/

Klicken Sie auf den unteren Button, um den Inhalt von developer.wordpress.org zu laden.

Inhalt laden

registriert worden.

Block mit Assets registrieren, lt. Handbuch

function my_custom_block() { if ( ! function_exists( 'register_block_type' ) ) { // Gutenberg is not active. return; } // Scripts. wp_enqueue_script( 'my-custom-block-script', // Handle. plugins_url( 'block.js', __FILE__ ), // Block.js: We register the block here. array( 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-editor' ), // Dependencies, defined above. filemtime( plugin_dir_path( __FILE__ ) . 'block.js' ), true // Load script in footer. ); // Styles. wp_register_style( 'my-custom-block-editor-style', // Handle. plugins_url( 'editor.css', __FILE__ ), // Block editor CSS. array( 'wp-edit-blocks' ), // Dependency to include the CSS after it. filemtime( plugin_dir_path( __FILE__ ) . 'editor.css' ) ); wp_register_style( 'my-custom-block-frontend-style', // Handle. plugins_url( 'style.css', __FILE__ ), // Block editor CSS. array(), // Dependency to include the CSS after it. filemtime( plugin_dir_path( __FILE__ ) . 'style.css' ) ); // Here we actually register the block with WP, again using our namespacing. // We also specify the editor script to be used in the Gutenberg interface. register_block_type( 'my/block', array( 'editor_script' => 'my-custom-block-script', 'editor_style' => 'my-custom-block-editor-style', 'style' => 'my-custom-block-frontend-style', ) ); } // Hook: Editor assets. add_action( 'init', 'my_custom_block' );
Code-Sprache: PHP (php)

blocks.js, Aufbau

(function (blocks, editor, components, i18n, element) { var __ = i18n.__ var el = element.createElement var registerBlockType = blocks.registerBlockType var RichText = editor.RichText var BlockControls = editor.BlockControls var AlignmentToolbar = editor.AlignmentToolbar var MediaUpload = editor.MediaUpload var InspectorControls = editor.InspectorControls var PanelBody = components.PanelBody var TextControl = components.TextControl registerBlockType('mycat/my-block', { ... }) })( window.wp.blocks, window.wp.editor, window.wp.components, window.wp.i18n, window.wp.element )
Code-Sprache: JavaScript (javascript)

Änderungen, nach denen Warning und Fehler behoben waren

function my_custom_block() { if ( ! function_exists( 'register_block_type' ) ) { // Gutenberg is not active. return; } // Scripts. wp_enqueue_script( 'my-custom-block-script', // Handle. plugins_url( 'block.js', __FILE__ ), // Block.js: We register the block here. array( 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-editor' ), // Dependencies, defined above. filemtime( plugin_dir_path( __FILE__ ) . 'block.js' ), true // Load script in footer. ); // Styles. wp_register_style( 'my-custom-block-editor-style', // Handle. plugins_url( 'editor.css', __FILE__ ), // Block editor CSS. array( 'wp-edit-blocks' ), // Dependency to include the CSS after it. filemtime( plugin_dir_path( __FILE__ ) . 'editor.css' ) ); // Here we actually register the block with WP, again using our namespacing. // We also specify the editor script to be used in the Gutenberg interface. register_block_type( 'my/block', array( 'editor_script' => 'my-custom-block-script', 'editor_style' => 'my-custom-block-editor-style' ) ); } // Hook: Editor assets. add_action( 'enqueue_block_editor_assets', 'my_custom_block' ); add_action( 'wp_enqueue_scripts', function() { wp_enqueue_style( 'my-custom-block-style', // Handle. plugins_url( 'style.css', __FILE__ ), // Block editor CSS. array(), // Dependency to include the CSS after it. filemtime( plugin_dir_path( __FILE__ ) . 'style.css' ) ); } );
Code-Sprache: PHP (php)

Nachdem das so allerdings nicht gedacht ist, betrachte ich das erstmal als Workaround, nichts als Lösung. Ich hoffe, darüber demnächst mehr herauszufinden. Vielleicht weiß der eine oder andere Leser darüber auch etwas und mag seine Erfahrungen dazu hinterlassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.