it-swarm.com.de

Gutenberg - Entfernen/Hinzufügen von Blöcken mit benutzerdefiniertem Skript

Ich teste derzeit das neue Gutenberg-Plugin mit meinem selbst entwickelten Theme und Plugin. Mein Thema hat eine benutzerdefinierte Meta-Box mit einer Aktion für den Benutzer. Sobald der Benutzer auf diese Aktion klickt, wird der Beitragsinhalt vollständig gelöscht und dem standardmäßigen tinyMce-Editor ein neuer benutzerdefinierter Inhalt hinzugefügt.

Beispiel : tinymce.get ("content"). SetContent ("my custom content");

Mit dem neuen Guteberg-Editor funktioniert das natürlich nicht mehr und ich habe Mühe, eine Lösung zu finden.

Grundsätzlich versuche ich, alle Blöcke/Inhalte aus dem Gutenberg-Editor zu entfernen und einen neuen Block (Text) mit meinen benutzerdefinierten Inhalten über Javascript hinzuzufügen. Hat jemand einen Hinweis, um mich in die richtige Richtung zu weisen?

7
Benmay

Es gibt wahrscheinlich einen einfacheren Weg, dies zu tun. Wenn dies nicht der Fall ist, sollten Sie ein Problem im Gutenberg GH Issue Tracker eröffnen (die API ist nicht in Stein gemeißelt).

Da die API nicht in Stein gemeißelt ist, kann diese Antwort unbrauchbar sein, wenn sie endlich fertig ist und zusammengeführt wird. Der erste und beste Ort, um GB Fragen zu stellen, ist auf GitHub

Sie können alle Blöcke auf diese Weise entfernen:

wp.data.dispatch( 'core/editor' ).resetBlocks([]);

Sie können dann programmgesteuert einen neuen Block erstellen:

let block = wp.blocks.createBlock( 'core/paragraph' );

Füge Text hinzu:

block.attributes.content.Push( 'hello world' );

Und füge es so ein:

wp.data.dispatch( 'core/editor' ).insertBlocks( block );

Bei weiterer Überprüfung gibt es eine einfachere Methode:

let block = wp.blocks.createBlock( 'core/paragraph', { content: 'test' } );
wp.data.dispatch( 'core/editor' ).insertBlocks( block );
9
Tom J Nowell