{"id":228428,"date":"2022-10-19T13:17:00","date_gmt":"2022-10-19T10:17:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228428"},"modified":"2022-11-09T02:23:33","modified_gmt":"2022-11-08T23:23:33","slug":"creacion-de-un-complemento-para-el-editor-de-bloques-de-wordpress-gutenberg","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/creacion-de-un-complemento-para-el-editor-de-bloques-de-wordpress-gutenberg\/","title":{"rendered":"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)"},"content":{"rendered":"\n<p>Si es nuevo en el Editor de bloques de WordPress (Gutenberg), es posible que se pregunte c\u00f3mo comenzar a crear su propio complemento.<\/p>\n<p>Afortunadamente, el equipo de desarrollo de WordPress tiene un <code>npm<\/code> <a href=\"https:\/\/www.npmjs.com\/package\/@wordpress\/create-block\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">script \u00fatil para que pueda crear un complemento de bloque<\/a> que crea un bloque de inicio para que pueda comenzar a funcionar r\u00e1pidamente.<\/p>\n<p>Por defecto, el tipo de complemento de WordPress que esto crea es un &#8216;bloque&#8217;, pero tambi\u00e9n nos brinda un buen punto de partida para otros tipos de complementos de Gutenberg.<\/p>\n<h2>requisitos previos<\/h2>\n<ul>\n<li><a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">El nodo debe estar instalado en su m\u00e1quina<\/a> para que pueda usar el <code>npm<\/code>comando (que significa Node Package Manager)<\/li>\n<li>Instalaci\u00f3n de WordPress<\/li>\n<li>Editor de c\u00f3digo<\/li>\n<li>Acceso a la Terminal<\/li>\n<\/ul>\n<h2>Crea tu Complemento<\/h2>\n<p>Despu\u00e9s de haber instalado el nodo en su m\u00e1quina, deber\u00eda tener acceso al <code>npm<\/code>comando en su terminal.<\/p>\n<p>Abra su terminal y aseg\u00farese de tener <code>cd<\/code>&#8216;d (Directorio cambiado) en la carpeta de complementos en su instalaci\u00f3n de WordPress (por ejemplo, <code>cd wp-content\/plugins<\/code>).<\/p>\n<p>Una vez all\u00ed ejecuta el siguiente comando:<\/p>\n<pre><code>npm init @wordpress\/block\n<\/code><\/pre>\n<p>Esto descargar\u00e1 todo lo que el script necesita para iniciar la compilaci\u00f3n. Una vez que haya terminado, el script le har\u00e1 una serie de preguntas que son necesarias para configurar su complemento.<\/p>\n<p>Uso de la terminal para ejecutar el script de creaci\u00f3n<\/p>\n<h3>Preguntas de configuraci\u00f3n<\/h3>\n<p>El script har\u00e1 las siguientes preguntas, aqu\u00ed est\u00e1n mis respuestas de ejemplo:<\/p>\n<ul>\n<li>\n<p><strong>El slug de bloque utilizado para la identificaci\u00f3n (tambi\u00e9n el complemento y el nombre de la carpeta de salida)<\/strong>: quiero que mi bloque se llame <code>Wholesome Plugin<\/code>, as\u00ed que ingres\u00e9 <code>wholesome-plugin<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>El espacio de nombres interno para el nombre del bloque (algo \u00fanico para sus productos)<\/strong>: como deber\u00eda ser \u00fanico para todos mis productos, ingres\u00e9 <code>wholesomecode<\/code>, ya que este es el nombre de mi empresa.<\/p>\n<\/li>\n<li>\n<p><strong>El t\u00edtulo de visualizaci\u00f3n para su bloque<\/strong>: ingres\u00e9 el t\u00edtulo del complemento, <code>Wholesome Plugin<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>La breve descripci\u00f3n de su bloque (opcional)<\/strong>: ingres\u00e9 &quot; <code>An example plugin to demonstrate the create-block-script<\/code>&quot;.<\/p>\n<\/li>\n<li>\n<p><strong>El dashicon para que sea m\u00e1s f\u00e1cil identificar su bloque (opcional)<\/strong>: al mostrar r\u00e1pidamente el <a href=\"https:\/\/developer.wordpress.org\/resource\/dashicons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">recurso de WordPress Dashicons<\/a>, lo eleg\u00ed <code>admin-plugins<\/code>porque tiene un \u00edcono de complemento. Recuerde omitir dashicon- del prefijo dashicon al hacer esto.<\/p>\n<\/li>\n<li>\n<p><strong>El nombre de la categor\u00eda para ayudar a los usuarios a navegar y descubrir su bloque (use las teclas de flecha)<\/strong>: eleg\u00ed <code>design<\/code>. Aunque una categor\u00eda personalizada probablemente encajar\u00eda mejor.<\/p>\n<\/li>\n<li>\n<p><strong>El nombre del autor del complemento (opcional). Se pueden enumerar varios autores usando comas<\/strong>: ingres\u00e9 <code>wholesomecode<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>El nombre corto de la licencia del complemento (opcional)<\/strong>: presion\u00e9 enter para aceptar GPL v2.0 o posterior.<\/p>\n<\/li>\n<li>\n<p><strong>Un enlace al texto completo de la licencia (opcional)<\/strong>: presion\u00e9 Intro para insertar la URL de la licencia GPL v2.0.<\/p>\n<\/li>\n<li>\n<p><strong>El n\u00famero de versi\u00f3n actual del complemento<\/strong>: presion\u00e9 enter para insertar <code>0.1.0<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d770fb3.png\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>Preguntas de configuraci\u00f3n de secuencias de comandos<\/p>\n<p>El script terminar\u00e1 de ejecutarse.<\/p>\n<h3>\u00bfLo que acaba de suceder?<\/h3>\n<p>Algunas cosas suceden mientras se ejecuta el script, estas son:<\/p>\n<ul>\n<li>Crea la carpeta del plugin,<\/li>\n<li>Genera todos los archivos del complemento (<a href=\"https:\/\/wholesomecode.ltd\/#exploring-the-plugin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">consulte la exploraci\u00f3n del complemento para conocer los detalles de lo que hacen<\/a> )<\/li>\n<li>Instala las dependencias que necesita, incluido el <code>@wordpress\/scripts<\/code>paquete (esto hace el trabajo pesado en t\u00e9rminos de construir el complemento)<\/li>\n<li>Compila el c\u00f3digo<\/li>\n<li>Muestra una lista de comandos que puede usar<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d865300.png\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>Comandos de compilaci\u00f3n<\/p>\n<p>Exploraremos estos m\u00e1s en la secci\u00f3n de <a href=\"https:\/\/wholesomecode.ltd\/wp\/wp-admin\/post.php?post=4268&#038;action=edit#exploring-the-plugin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">exploraci\u00f3n del complemento<\/a>.<\/p>\n<h2>Uso del complemento<\/h2>\n<p>Antes de que pueda usar el complemento, deber\u00e1 activarlo. Puede hacer esto eligiendo <code>Plugins<\/code>desde el men\u00fa de administraci\u00f3n de WordPress y luego seleccionando <code>activate<\/code>bajo el nombre del complemento.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d958ea6.gif\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>Activar el complemento<\/p>\n<p>Ahora necesita editar una publicaci\u00f3n en WordPress e insertar el complemento usando el editor de Gutenberg.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0db497f6.gif\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>Insertar el bloque en una publicaci\u00f3n<\/p>\n<p>Tenga en cuenta que el complemento no hace mucho por defecto, solo crea un bloque. Sin embargo, proporciona un marco para que lo use para crear su propio complemento.<\/p>\n<h3>Visualizaci\u00f3n del bloque en el front-end<\/h3>\n<p>De forma predeterminada, el bloque se ve as\u00ed en la parte delantera. Tenga en cuenta que tiene una apariencia ligeramente diferente, esto es deliberado para que pueda familiarizarse con el CSS en el frente y el backend de WordPress.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0dd10fa2.png\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>El bloque en la parte delantera<\/p>\n<h2>Explorando el complemento<\/h2>\n<p>Todo el prop\u00f3sito de Create Block Script es que usted cree su propio complemento. Exploremos los archivos que gener\u00f3 con m\u00e1s detalle:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0de1777f.png\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>Archivos generados<\/p>\n<p><strong><code>wholesome-plugin<\/code><\/strong>\u2014 Esta es la carpeta ra\u00edz del complemento, tiene el mismo nombre que el que ingres\u00e9 para el &#8216;slug&#8217; en las preguntas de configuraci\u00f3n.<\/p>\n<p><code>**\/build**<\/code>\u2014 Esta es la carpeta de compilaci\u00f3n. Contiene todos los activos de JavaScript y PHP generados a partir de la <code>\/src<\/code>carpeta. Estos se ponen en cola a trav\u00e9s del <code>wholesome-notes.php<\/code>archivo del cargador principal.<\/p>\n<p><code>**\/build\/index.assets.php**<\/code>\u2014 Este archivo PHP se genera autom\u00e1ticamente cuando <code>\/src<\/code>se compila la carpeta. Contiene una variedad de todas las decencias de JavaScript del Editor de WordPress (Gutenberg) utilizadas por su complemento. Se pone en cola a trav\u00e9s del <code>wholesome-plugin.php<\/code>archivo del cargador principal.<\/p>\n<p><code>**\/build\/index.css**<\/code>\u2014 Este es el archivo CSS del editor y se pone en cola a trav\u00e9s del <code>wholesome-plugin.php<\/code>archivo del cargador principal.<\/p>\n<p><code>**\/build\/index.js**<\/code>\u2014 Este es el archivo JavaScript compilado principal y se pone en cola a trav\u00e9s del <code>wholesome-plugin.php<\/code>archivo del cargador principal.<\/p>\n<p><code>**\/build\/style-index.css**<\/code>\u2014 Este es el archivo CSS de front-end y se pone en cola a trav\u00e9s del <code>wholesome-plugin.php<\/code>archivo del cargador principal.<\/p>\n<p><code>**\/build\/index.js.map**<\/code>\u2014 Este archivo solo se genera cuando est\u00e1 compilando los activos para el modo de desarrollo (es decir, lo ejecuta <code>npm start<\/code>y no <code>npm build<\/code>cuando est\u00e1 compilando sus activos). Es un archivo \u00fatil para los depuradores de JavaScript para ayudar a identificar los nombres de los archivos y los n\u00fameros de l\u00ednea si se producen errores.<\/p>\n<ul>\n<li>\n<p><code>**\/node_modules**<\/code>\u2014 Esta es la carpeta en la que est\u00e1n instaladas todas las dependencias de JavaScript para su complemento.<\/p>\n<\/li>\n<li>\n<p><code>**\/src**<\/code>\u2014 Esta es la carpeta que contiene todos los activos sin compilar para su complemento.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/edit.js**<\/code>\u2014 Esta es la funci\u00f3n de edici\u00f3n del bloque y controla c\u00f3mo se muestra el bloque en el editor de bloques cuando est\u00e1 en modo de edici\u00f3n.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/editor.scss**<\/code>\u2014 Este es el SCSS sin compilar para el editor, se compilar\u00e1 en <code>\/build\/index.css<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/index.js**<\/code>\u2014 Este es el principal archivo JavaScript sin compilar para su bloque del Editor de WordPress (Gutenberg). Registra el bloque y contiene la configuraci\u00f3n predeterminada.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/save.js**<\/code>\u2014 Esta es la funci\u00f3n de guardado del bloque y controla el marcado del bloque cuando se guarda.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/style.scss**<\/code>\u2014 Este es el SCSS sin compilar para el front-end, se compilar\u00e1 en <code>\/build\/style-index.css<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/.editorconfig**<\/code>\u2014 Este archivo contiene ajustes preestablecidos \u00fatiles para su IDE (Entorno de desarrollo integrado), como Visual Studio Code.<\/p>\n<\/li>\n<li>\n<p><code>**\/.gitignore**<\/code>\u2014 Este archivo le dice a git que ignore ciertos archivos cuando se compromete con un repositorio de git (como GitHub).<\/p>\n<\/li>\n<li>\n<p><code>**\/editor.css**<\/code>\u2014 Los estilos en este archivo se generan solo en el editor, se ponen en cola a trav\u00e9s del <code>wholesome-notes.php<\/code>archivo del cargador principal.<\/p>\n<\/li>\n<li>\n<p><code>**\/block.json**<\/code>\u2014 Este archivo define el complemento para que pueda ser descubierto por la biblioteca de bloques de WordPress. Si realiza cambios en el complemento, aseg\u00farese de que este archivo est\u00e9 actualizado. En las versiones m\u00e1s recientes del script NPM, este archivo se usa en lugar de <code>\/src\/index.js<\/code>para registrar su bloque.<\/p>\n<\/li>\n<li>\n<p><code>**\/package.json**<\/code>\u2014 Este archivo contiene todas las dependencias de npm para el complemento y los comandos que puede ejecutar. Tenga en cuenta que el complemento utiliza <code>wp-scripts<\/code>( <code>@wordpress\/scripts<\/code>) como base, por lo que inicialmente las dependencias cargadas son para ese paquete.<\/p>\n<\/li>\n<li>\n<p><code>**\/readme.txt**<\/code>\u2014 Este archivo es un archivo L\u00e9ame del repositorio de complementos de WordPress, que es necesario si desea que el bloque se incluya en el repositorio de complementos.<\/p>\n<\/li>\n<li>\n<p><code>**\/wholesome-plugin.php**<\/code>\u2014 Este es el archivo principal del cargador del complemento. Su nombre se estableci\u00f3 mediante el &#8216;slug&#8217; que ingresamos en el script de configuraci\u00f3n inicial. Pone en cola todos los activos de JavaScript necesarios para el complemento.<\/p>\n<\/li>\n<\/ul>\n<h3>Explorando los comandos de compilaci\u00f3n<\/h3>\n<p>Antes de que podamos ejecutar nuestros comandos de compilaci\u00f3n, debemos asegurarnos de que estamos en la carpeta del complemento. En este ejemplo, ejecutar\u00edamos <code>cd wholesome-plugin<\/code>en la terminal para cambiar el directorio a nuestra carpeta de complementos.<\/p>\n<p>Entonces podemos ejecutar los siguientes comandos:<\/p>\n<ul>\n<li>\n<p><code>**npm start**<\/code>\u2014 Inicia la compilaci\u00f3n para el desarrollo. Si realiza un cambio en el complemento, debe hacerlo para que se muestren los cambios (es probable que tambi\u00e9n deba actualizar su navegador).<\/p>\n<\/li>\n<li>\n<p><code>**npm run build**<\/code>\u2014 Construye el c\u00f3digo para la producci\u00f3n. Haga esto si est\u00e1 creando una versi\u00f3n de lanzamiento del complemento.<\/p>\n<\/li>\n<li>\n<p><code>**npm run format:js**<\/code>\u2014 Formatea autom\u00e1ticamente los archivos JavaScript, utilizando las mejores pr\u00e1cticas.<\/p>\n<\/li>\n<li>\n<p><code>**npm run lint:css**<\/code>\u2014 Pelusas (busca errores en) archivos CSS.<\/p>\n<\/li>\n<li>\n<p><code>**npm run lint:js**<\/code>\u2014 Pelusas (busca errores en) archivos JavaScript.<\/p>\n<\/li>\n<li>\n<p><code>**npm run packages-update**<\/code>\u2014 Actualiza los paquetes de WordPress a la \u00faltima versi\u00f3n.<\/p>\n<\/li>\n<\/ul>\n<p>Usaremos uno o m\u00e1s de estos al modificar el complemento.<\/p>\n<h2>Modificando el complemento<\/h2>\n<p>Comencemos por hacer que nuestro bloque sea editable.<\/p>\n<h3>Agregar atributos a<code>\/src\/index.js<\/code><\/h3>\n<p>\u00c1bralo <code>\/src\/index.js<\/code>en su editor y agregue lo siguiente dentro de la <code>registerBlockType<\/code>funci\u00f3n, en <code>apiVersion<\/code>:<\/p>\n<pre><code>attributes: {\n  blockText: {\n    default: 'Wholesome Plugin \u2013 hello from the editor!',\n    type: 'string',\n  },\n},\n<\/code><\/pre>\n<p>Esto nos dar\u00e1 un lugar para almacenar los datos en nuestro complemento llamado <code>blockText<\/code>accesible a trav\u00e9s de la <code>attributes<\/code>propiedad (prop). Tenga en cuenta que le hemos dado un valor predeterminado del texto original generado por el script de creaci\u00f3n del complemento.<\/p>\n<h3>Agregar texto enriquecido a<code>\/src\/edit.js<\/code><\/h3>\n<p>\u00c1bralo <code>\/src\/edit.js<\/code>en su editor y reemplace la importaci\u00f3n por <code>useBlockProps<\/code>lo siguiente:<\/p>\n<pre><code>import { RichText, useBlockProps } from '@wordpress\/block-editor';\n<\/code><\/pre>\n<p>Esto nos permitir\u00e1 usar el componente RichText en nuestro m\u00e9todo de procesamiento de edici\u00f3n.<\/p>\n<p>Luego cambie toda la funci\u00f3n Editar a lo siguiente:<\/p>\n<pre><code>export default function Edit( { attributes, setAttributes }) {\n    const { blockText } = attributes;\n    return (&lt;p { ...useBlockProps() }&gt;\n            &lt;RichText\n                className=\"block__text\"\n                keepPlaceholderOnFocus\n                onChange={ (blockText) =&gt; setAttributes( { blockText }) }\n                placeholder={ __( 'Block Text', 'wholesome-plugin') }\n                tagName=\"span\"\n                value={ blockText }\n            \/&gt;\n        &lt;\/p&gt;\n    );\n}\n<\/code><\/pre>\n<p>Esto establece que el valor del <code>RichText<\/code>componente sea el mismo que el almacenado en el <code>blockText<\/code>atributo, y la <code>onChange<\/code>propiedad establece el <code>blockText<\/code>atributo a lo que se haya ingresado en el <code>RichText<\/code>componente.<\/p>\n<h3>Salida de los atributos en<code>\/src\/save.js<\/code><\/h3>\n<p>\u00c1bralo <code>\/src\/save.js<\/code>en su editor y reemplace la <code>save<\/code>funci\u00f3n con lo siguiente:<\/p>\n<pre><code>export default function save( { attributes }) {\n    const { blockText } = attributes;\n    return (&lt;p { ...useBlockProps.save() }&gt;\n            { blockText }\n        &lt;\/p&gt;\n    );\n}\n<\/code><\/pre>\n<p>Esto simplemente genera el valor de <code>blockText<\/code>en el p\u00e1rrafo.<\/p>\n<h3>Compilando el complemento<\/h3>\n<p>Abra la terminal, aseg\u00farese de estar en el directorio ra\u00edz de su complemento y ejecute el siguiente comando:<\/p>\n<p>El script se compilar\u00e1. Si tiene alg\u00fan error, la terminal debe informarle cu\u00e1les son.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0df5e2a4.gif\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>Construyendo el complemento<\/p>\n<h3>Insertar el complemento<\/h3>\n<p>Aseg\u00farate de haber actualizado tu publicaci\u00f3n. La versi\u00f3n anterior del bloque ahora puede estar rota, esto est\u00e1 bien, simplemente elim\u00ednelo e inserte uno nuevo.<\/p>\n<p>Inserte el bloque usando el s\u00edmbolo m\u00e1s de la parte superior izquierda del editor, y cuando est\u00e9 insertado, haga clic en su texto. Deber\u00eda. ahora podr\u00e1 editar el texto.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e151e82.gif\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>Insertar el bloque editable<\/p>\n<h3>Ver el complemento<\/h3>\n<p>Guarde la publicaci\u00f3n y m\u00edrela en la parte frontal del sitio web, el texto que modific\u00f3 debe mostrarse en lugar del texto original.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e327430.png\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>Bloque editable en la parte delantera del sitio web<\/p>\n<p>Si desea que sus bloques aparezcan en una categor\u00eda de bloque personalizada, simplemente agregue el siguiente c\u00f3digo a la ra\u00edz de su complemento (en este caso <code>wholesome-plugin.php<\/code>:<\/p>\n<pre><code>function wholesomecode_wholesome_plugin_block_categories( $categories) {\n    return array_merge(\n        $categories,\n        [\n            [\n                'slug'  =&gt; 'wholesome-blocks',\n                'title' =&gt; __( 'Wholesome Blocks', 'wholesome-boilerplate' ),\n            ],\n        ]\n    );\n}\nadd_action( 'block_categories', 'wholesomecode_wholesome_plugin_block_categories', 10, 2 );\n<\/code><\/pre>\n<p>Esto registrar\u00e1 una categor\u00eda de bloque personalizado en su insertador de bloques.<\/p>\n<p>Luego, todo lo que necesita hacer es ajustar el <code>category<\/code>argumento de la <code>registerBlockType<\/code>funci\u00f3n <code>\/src\/index.js<\/code>para referirse a su categor\u00eda de bloque y volver a compilar:<\/p>\n<pre><code>\ncategory: 'wholesome-blocks',\n<\/code><\/pre>\n<p>Ahora, cuando venga a insertar su bloque, lo encontrar\u00e1 en su categor\u00eda de bloque reci\u00e9n creada:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e40fe2e.png\" alt=\"Creaci\u00f3n de un complemento para el editor de bloques de WordPress (Gutenberg)\" \/>Categor\u00eda de bloque personalizado en el insertador de bloques<\/p>\n<ul>\n<li>Eche un vistazo al <a href=\"https:\/\/wholesomecode.ltd\/guides\/php-render-block-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uso de PHP para representar su bloque con bloques din\u00e1micos<\/a><\/li>\n<li>Mire el <a href=\"https:\/\/wholesomecode.ltd\/guides\/post-meta-fields-store-attributes-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uso de metacampos de publicaci\u00f3n como atributos en su bloque<\/a><\/li>\n<li><a href=\"https:\/\/wholesomecode.ltd\/guides\/add-sidebar-controls-to-your-custom-wordpress-block-with-inspectorcontrols\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Agregue una barra lateral de bloque con InspectorControls<\/a><\/li>\n<li>Ampl\u00ede su complemento <a href=\"https:\/\/wholesomecode.ltd\/guides\/entry-points-wordpress-create-block-script\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">agregando puntos de entrada adicionales al archivo webpack.config<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wholesomecode.ltd\" class=\"external external_icon\">wholesomecode.ltd<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si es nuevo en el Editor de bloques de WordPress (Gutenberg), es posible que se pregunte c\u00f3mo comenzar a crear su propio complemento. Afortunadamente, el equipo de desarrollo de WordPress tiene un \u00fatil &#8230;<\/p>\n","protected":false},"author":1,"featured_media":223619,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,810,716,747,935,800,840],"tags":[1172],"class_list":["post-228428","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-complementos","category-desarrollador","category-fuente-abierta","category-gutenberg-2","category-php-2","category-tutoriales","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/228428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=228428"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/228428\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/223619"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=228428"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=228428"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=228428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}