Shramee
En los días de TMCE, podíamos obtener fácilmente contenido de editor con editor.getContent()
. Sin embargo, en el nuevo editor de Gutenberg, no puedo encontrar un método para hacerlo.
Necesito todo el contenido del editor como HTML (la forma en que se guardará en la base de datos).
encontré wp.block.serialize()
método que suena prometedor. Pero parece necesitar bloques (como parámetro). Así que estoy un poco atascado.
A partir de la versión 3.1. de Gutenberg, prueba esto:
para obtener el contenido del bloque simple:
var originalContent = wp.data.select( "core/editor" ).getCurrentPost().content;
var editedContent = wp.data.select( "core/editor" ).getEditedPostContent();
para renderizar la publicación (transformar a bloques):
wp.blocks.parse( editedContent );
Es posible que desee explorar la window._wpGutenbergPost.content
que tiene tanto un raw
y rendered
contenido. Esto es, en este momento. Probablemente las cosas cambien 🙂
-
Gracias Andrea, pero eso parece devolver contenido guardado en la base de datos, no lo que el usuario ha editado en el editor…– Shramee11 de enero de 2018 a las 13:11
-
Esto parece estar desactualizado. Vea mi respuesta a continuación.– Caudal25 de junio de 2018 a las 12:10
Puede usar selectores, nos permite recuperar datos y, de manera similar, por ejemplo, para actualizar el título de la publicación que se está editando en Gutenberg, puede hacer:
wp.data.dispatch( 'core/editor' ).editPost( { title: 'New Title' } );
Puedes consultar el archivo de acciones aquí https://github.com/WordPress/gutenberg/blob/v2.9.2/editor/store/actions.js para ver la lista completa de las acciones definidas por el espacio de nombres principal/editor.
-
¿Cómo editar el contenido? Intenté wp.data.dispatch( ‘core/editor’ ).editPost( { content: ‘\n
Te quiero papi dddhhhhh.
\n‘ } ); pero actualiza el código en el editor HTML y bloquea no actualiza su contenido– Atef08/09/2018 a las 22:55

hormiga-c
Tengo un problema similar pero no puedo comentar. La respuesta proporcionada por Flow que establece el título de la publicación pero a partir de 4.5.1 no maneja el contenido.
Para actualizar el contenido de la publicación, pude insertar un bloque de párrafo. Aquí está mi código:
wp.data.dispatch( 'core/editor' ).editPost( { title: 'New Title' } );
var editedContent = wp.data.select( "core/editor" ).getEditedPostContent();
var newBlock = wp.blocks.createBlock( "core/paragraph", {
content: editedContent,
});
wp.data.dispatch( "core/editor" ).insertBlocks( newBlock );