{"id":229178,"date":"2022-10-19T13:51:00","date_gmt":"2022-10-19T10:51:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229178"},"modified":"2022-11-09T05:50:49","modified_gmt":"2022-11-09T02:50:49","slug":"creazione-di-un-plug-in-per-leditor-blocchi-di-wordpress-gutenberg","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/creazione-di-un-plug-in-per-leditor-blocchi-di-wordpress-gutenberg\/","title":{"rendered":"Creazione di un plug-in per l&#8217;editor blocchi di WordPress (Gutenberg)"},"content":{"rendered":"\n<p>Se non conosci WordPress Block Editor (Gutenberg) ti starai chiedendo come iniziare a creare il tuo plugin.<\/p>\n<p>Fortunatamente il team di sviluppo di WordPress ha uno <code>npm<\/code> <a href=\"https:\/\/www.npmjs.com\/package\/@wordpress\/create-block\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">script utile per creare un plug-in di blocco<\/a> che crea un blocco di avvio in modo da poter iniziare rapidamente a funzionare.<\/p>\n<p>Per impostazione predefinita, il tipo di plug-in WordPress creato \u00e8 un &quot;blocco&quot;, ma ci offre anche un buon punto di partenza per altri tipi di plug-in Gutenberg.<\/p>\n<h2>Prerequisiti<\/h2>\n<ul>\n<li><a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node deve essere installato sulla tua macchina in<\/a> modo da poter usare il <code>npm<\/code>comando (che sta per Node Package Manager)<\/li>\n<li>Installazione WordPress<\/li>\n<li>Editor di codice<\/li>\n<li>Accesso al Terminale<\/li>\n<\/ul>\n<h2>Crea il tuo plugin<\/h2>\n<p>Dopo aver installato il nodo sulla tua macchina, dovresti avere accesso al <code>npm<\/code>comando nel tuo terminale.<\/p>\n<p>Apri il tuo terminale e assicurati di aver <code>cd<\/code>&#8216;d (Changed Directory) nella cartella dei plugin nell&#8217;installazione di WordPress (ad es <code>cd wp-content\/plugins<\/code>. ).<\/p>\n<p>Una volta l\u00ec, esegui il seguente comando:<\/p>\n<pre><code>npm init @wordpress\/block\n<\/code><\/pre>\n<p>Questo scaricher\u00e0 tutto ci\u00f2 di cui lo script ha bisogno per avviare la build. Una volta terminato, lo script ti porr\u00e0 una serie di domande necessarie per configurare il tuo plugin.<\/p>\n<p>Utilizzo del terminale per eseguire lo script di creazione<\/p>\n<h3>Domande di configurazione<\/h3>\n<p>Lo script far\u00e0 le seguenti domande, ecco le mie risposte di esempio:<\/p>\n<ul>\n<li>\n<p><strong>Lo slug del blocco utilizzato per l&#8217;identificazione (anche il nome del plug-in e della cartella di output)<\/strong>: voglio che il mio blocco venga chiamato <code>Wholesome Plugin<\/code>, quindi ho inserito <code>wholesome-plugin<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Lo spazio dei nomi interno per il nome del blocco (qualcosa di unico per i tuoi prodotti)<\/strong>: poich\u00e9 dovrebbe essere univoco per tutti i miei prodotti che ho inserito <code>wholesomecode<\/code>, poich\u00e9 questo \u00e8 il nome della mia azienda.<\/p>\n<\/li>\n<li>\n<p><strong>Il titolo visualizzato per il tuo blocco<\/strong>: ho inserito il titolo del plugin, <code>Wholesome Plugin<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>La breve descrizione per il tuo blocco (facoltativo)<\/strong> \u2014 Ho inserito &#8221; <code>An example plugin to demonstrate the create-block-script<\/code>&#8220;.<\/p>\n<\/li>\n<li>\n<p><strong>Il dashicon per semplificare l&#8217;identificazione del blocco (opzionale)<\/strong> \u2014 Facendo apparire rapidamente la <a href=\"https:\/\/developer.wordpress.org\/resource\/dashicons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">risorsa Dashicon di WordPress<\/a>, ho scelto <code>admin-plugins<\/code>perch\u00e9 ha un&#8217;icona di plug-in. Ricordarsi di omettere dashicon- dal prefisso dashicon quando si esegue questa operazione.<\/p>\n<\/li>\n<li>\n<p><strong>Il nome della categoria per aiutare gli utenti a navigare e scoprire il tuo blocco (usa i tasti freccia)<\/strong> \u2014 ho scelto <code>design<\/code>. Anche se una categoria personalizzata sarebbe probabilmente pi\u00f9 adatta.<\/p>\n<\/li>\n<li>\n<p><strong>Il nome dell&#8217;autore del plugin (facoltativo). \u00c8 possibile elencare pi\u00f9 autori utilizzando le virgole<\/strong>: ho inserito <code>wholesomecode<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Il nome breve della licenza del plugin (opzionale)<\/strong>: ho premuto invio per accettare la GPL v2.0 o successiva.<\/p>\n<\/li>\n<li>\n<p><strong>Un collegamento al testo completo della licenza (opzionale)<\/strong>: ho premuto invio per inserire l&#8217;URL della licenza GPL v2.0.<\/p>\n<\/li>\n<li>\n<p><strong>Il numero di versione corrente del plugin<\/strong>: ho premuto invio per inserire <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=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>Domande sulla configurazione dello script<\/p>\n<p>Lo script terminer\u00e0 quindi l&#8217;esecuzione.<\/p>\n<h3>Cosa \u00e8 appena successo?<\/h3>\n<p>Alcune cose accadono mentre lo script \u00e8 in esecuzione, queste sono:<\/p>\n<ul>\n<li>Crea la cartella del plugin,<\/li>\n<li>Genera tutti i file del plug-in (<a href=\"https:\/\/wholesomecode.ltd\/#exploring-the-plugin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vedi Esplorazione del plug-in per i dettagli su ci\u00f2 che fanno<\/a> )<\/li>\n<li>Installa le dipendenze di cui ha bisogno, incluso il <code>@wordpress\/scripts<\/code>pacchetto (questo fa il lavoro pesante in termini di costruzione del plugin)<\/li>\n<li>Compila il codice<\/li>\n<li>Emette un elenco di comandi che puoi usare<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d865300.png\" alt=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>Costruisci comandi<\/p>\n<p>Li esploreremo di pi\u00f9 nella sezione dedicata <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\">all&#8217;esplorazione del plugin<\/a>.<\/p>\n<h2>Utilizzo del plug-in<\/h2>\n<p>Prima di poter utilizzare il plugin, dovrai attivarlo. Puoi farlo scegliendo <code>Plugins<\/code>dal menu di amministrazione di WordPress, quindi selezionando <code>activate<\/code>sotto il nome del plug-in.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d958ea6.gif\" alt=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>Attiva il Plugin<\/p>\n<p>Ora devi modificare un post in WordPress e inserire il plug-in utilizzando l&#8217;editor Gutenberg.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0db497f6.gif\" alt=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>Inserimento del blocco in un post<\/p>\n<p>Nota che il plugin non \u00e8 molto predefinito, crea solo un blocco. Tuttavia, fornisce un framework da utilizzare per creare il proprio plug-in.<\/p>\n<h3>Visualizzazione del blocco sul front-end<\/h3>\n<p>Per impostazione predefinita, il blocco ha questo aspetto sul front-end. Nota che ha un aspetto leggermente diverso, questo \u00e8 intenzionale in modo da poter familiarizzare con i CSS sul front e sul backend di WordPress.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0dd10fa2.png\" alt=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>Il blocco sul front-end<\/p>\n<h2>Esplorazione del plug-in<\/h2>\n<p>L&#8217;intero scopo di Create Block Script \u00e8 che tu crei il tuo plug-in. Esploriamo i file che ha generato in modo pi\u00f9 dettagliato:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0de1777f.png\" alt=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>File generati<\/p>\n<p><strong><code>wholesome-plugin<\/code><\/strong>\u2014 Questa \u00e8 la cartella principale del plugin, ha lo stesso nome di quella che ho inserito per lo &#8216;slug&#8217; nelle domande di installazione.<\/p>\n<p><code>**\/build**<\/code>\u2014 Questa \u00e8 la cartella build. Contiene tutte le risorse JavaScript e PHP generate dalla <code>\/src<\/code>cartella. Questi vengono accodati tramite il <code>wholesome-notes.php<\/code>file del caricatore principale.<\/p>\n<p><code>**\/build\/index.assets.php**<\/code>\u2014 Questo file PHP viene generato automaticamente quando la <code>\/src<\/code>cartella viene compilata. Contiene un array di tutte le decenze JavaScript di WordPress Editor (Gutenberg) utilizzate dal tuo plugin. Viene accodato tramite il <code>wholesome-plugin.php<\/code>file del caricatore principale.<\/p>\n<p><code>**\/build\/index.css**<\/code>\u2014 Questo \u00e8 il file CSS dell&#8217;editor ed \u00e8 accodato tramite il <code>wholesome-plugin.php<\/code>file di caricamento principale.<\/p>\n<p><code>**\/build\/index.js**<\/code>\u2014 Questo \u00e8 il file JavaScript compilato principale e viene accodato tramite il <code>wholesome-plugin.php<\/code>file del caricatore principale.<\/p>\n<p><code>**\/build\/style-index.css**<\/code>\u2014 Questo \u00e8 il file CSS front-end e viene accodato tramite il <code>wholesome-plugin.php<\/code>file di caricamento principale.<\/p>\n<p><code>**\/build\/index.js.map**<\/code>\u2014 Questo file viene generato solo quando si compilano gli asset per la modalit\u00e0 di sviluppo (IE lo si esegue <code>npm start<\/code>e non <code>npm build<\/code>quando si compilano gli asset. \u00c8 un file utile per i debugger JavaScript per aiutare a identificare i nomi dei file e i numeri di riga in caso di errori.<\/p>\n<ul>\n<li>\n<p><code>**\/node_modules**<\/code>\u2014 Questa \u00e8 la cartella in cui sono installate tutte le dipendenze JavaScript per il tuo plugin.<\/p>\n<\/li>\n<li>\n<p><code>**\/src**<\/code>\u2014 Questa \u00e8 la cartella che contiene tutte le risorse non compilate per il tuo plugin.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/edit.js**<\/code>\u2014 Questa \u00e8 la funzione di modifica del blocco e controlla come il blocco viene visualizzato nell&#8217;editor di blocchi quando \u00e8 in modalit\u00e0 di modifica.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/editor.scss**<\/code>\u2014 Questo \u00e8 l&#8217;SCSS non compilato per l&#8217;editor, verr\u00e0 compilato in <code>\/build\/index.css<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/index.js**<\/code>\u2014 Questo \u00e8 il principale file JavaScript non compilato per il blocco dell&#8217;editor di WordPress (Gutenberg). Registra il blocco e contiene le impostazioni predefinite.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/save.js**<\/code>\u2014 Questa \u00e8 la funzione di salvataggio del blocco e controlla il markup del blocco quando viene salvato.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/style.scss**<\/code>\u2014 Questo \u00e8 l&#8217;SCSS non compilato per il front-end, verr\u00e0 compilato in <code>\/build\/style-index.css<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/.editorconfig**<\/code>\u2014 Questo file contiene utili predefiniti per il tuo IDE (Integrated Development Environment), come Visual Studio Code.<\/p>\n<\/li>\n<li>\n<p><code>**\/.gitignore**<\/code>\u2014 Questo file dice a git di ignorare determinati file quando esegui il commit in un repository git (come GitHub).<\/p>\n<\/li>\n<li>\n<p><code>**\/editor.css**<\/code>\u2014 Gli stili in questo file vengono emessi solo nell&#8217;editor, viene accodato tramite il <code>wholesome-notes.php<\/code>file del caricatore principale.<\/p>\n<\/li>\n<li>\n<p><code>**\/block.json**<\/code>\u2014 Questo file definisce il plug-in in modo che possa essere rilevato dalla libreria di blocchi di WordPress. Se apporti modifiche al plugin, assicurati che questo file sia aggiornato. Nelle versioni pi\u00f9 recenti dello script NPM, questo file viene utilizzato invece di <code>\/src\/index.js<\/code>registrare il blocco.<\/p>\n<\/li>\n<li>\n<p><code>**\/package.json**<\/code>\u2014 Questo file contiene tutte le dipendenze npm per il plugin e i comandi che puoi eseguire. Nota che il plugin utilizza <code>wp-scripts<\/code>( <code>@wordpress\/scripts<\/code>) come base, quindi inizialmente le dipendenze caricate sono per quel pacchetto.<\/p>\n<\/li>\n<li>\n<p><code>**\/readme.txt**<\/code>\u2014 Questo file \u00e8 un file readme del repository di plugin di WordPress, necessario se si desidera che il blocco sia elencato nel repository di plugin.<\/p>\n<\/li>\n<li>\n<p><code>**\/wholesome-plugin.php**<\/code>\u2014 Questo \u00e8 il file di caricamento principale per il plugin. Il suo nome \u00e8 stato impostato tramite lo &quot;slug&quot; che abbiamo inserito nello script di installazione iniziale. Accoda tutte le risorse JavaScript necessarie per il plugin.<\/p>\n<\/li>\n<\/ul>\n<h3>Esplorazione dei comandi di costruzione<\/h3>\n<p>Prima di poter eseguire i nostri comandi di build, dobbiamo assicurarci di essere nella cartella dei plugin. In questo esempio verremmo eseguiti <code>cd wholesome-plugin<\/code>nel terminale per cambiare la directory nella nostra cartella dei plugin.<\/p>\n<p>Possiamo quindi eseguire i seguenti comandi:<\/p>\n<ul>\n<li>\n<p><code>**npm start**<\/code>\u2014 Avvia la build per lo sviluppo. Se apporti una modifica al plug-in, devi farlo per visualizzare le modifiche (probabilmente dovrai aggiornare anche il browser).<\/p>\n<\/li>\n<li>\n<p><code>**npm run build**<\/code>\u2014 Crea il codice per la produzione. Fallo se stai creando una versione di rilascio del plugin.<\/p>\n<\/li>\n<li>\n<p><code>**npm run format:js**<\/code>\u2014 Formatta automaticamente i file JavaScript, utilizzando le migliori pratiche.<\/p>\n<\/li>\n<li>\n<p><code>**npm run lint:css**<\/code>\u2014 Lints (cerca errori nei) file CSS.<\/p>\n<\/li>\n<li>\n<p><code>**npm run lint:js**<\/code>\u2014 Lints (cerca errori nei) file JavaScript.<\/p>\n<\/li>\n<li>\n<p><code>**npm run packages-update**<\/code>\u2014 Aggiorna i pacchetti di WordPress all&#8217;ultima versione.<\/p>\n<\/li>\n<\/ul>\n<p>Utilizzeremo uno o pi\u00f9 di questi durante la modifica del plugin.<\/p>\n<h2>Modifica del plug-in<\/h2>\n<p>Iniziamo rendendo modificabile il nostro blocco.<\/p>\n<h3>Aggiungi attributi a<code>\/src\/index.js<\/code><\/h3>\n<p>Apri <code>\/src\/index.js<\/code>nel tuo editor e aggiungi quanto segue all&#8217;interno della <code>registerBlockType<\/code>funzione, sotto <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>Questo ci dar\u00e0 un posto dove archiviare i dati nel nostro plugin chiamato <code>blockText<\/code>accessibile tramite la <code>attributes<\/code>propriet\u00e0 (prop). Nota che gli abbiamo assegnato un valore predefinito del testo originale generato dallo script di creazione del plug-in.<\/p>\n<h3>Aggiungi RichText a<code>\/src\/edit.js<\/code><\/h3>\n<p>Apri <code>\/src\/edit.js<\/code>nel tuo editor e sostituisci l&#8217;importazione per <code>useBlockProps<\/code>con quanto segue:<\/p>\n<pre><code>import { RichText, useBlockProps } from '@wordpress\/block-editor';\n<\/code><\/pre>\n<p>Questo ci consentir\u00e0 di utilizzare il componente RichText nel nostro metodo di rendering di modifica.<\/p>\n<p>Quindi cambia l&#8217;intera funzione Modifica come segue:<\/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>Ci\u00f2 imposta il valore del <code>RichText<\/code>componente in modo che sia lo stesso di quello memorizzato <code>blockText<\/code>nell&#8217;attributo e la <code>onChange<\/code>propriet\u00e0 imposta l&#8217; <code>blockText<\/code>attributo su ci\u00f2 che \u00e8 stato inserito nel <code>RichText<\/code>componente.<\/p>\n<h3>Emetti gli attributi in<code>\/src\/save.js<\/code><\/h3>\n<p>Apri <code>\/src\/save.js<\/code>nel tuo editor e sostituisci la <code>save<\/code>funzione con la seguente:<\/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>Questo semplicemente restituisce il valore di <code>blockText<\/code>nel paragrafo.<\/p>\n<h3>Compilazione del plugin<\/h3>\n<p>Apri il terminale, assicurati di essere nella directory principale del tuo plugin ed esegui il seguente comando:<\/p>\n<p>Lo script verr\u00e0 compilato. In caso di errori, il terminale dovrebbe informarti di cosa sono.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0df5e2a4.gif\" alt=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>Costruire il plug-in<\/p>\n<h3>Inserimento del plugin<\/h3>\n<p>Assicurati di aver aggiornato il tuo post. La versione precedente del blocco potrebbe ora essere rotta, va bene, basta cancellarla e inserirne una nuova.<\/p>\n<p>Inserire il blocco utilizzando il simbolo pi\u00f9 in alto a sinistra dell&#8217;editor, e una volta inserito cliccare sul suo testo. Dovresti. ora \u00e8 possibile modificare il testo.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e151e82.gif\" alt=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>Inserimento del blocco modificabile<\/p>\n<h3>Visualizzazione del plug-in<\/h3>\n<p>Salva il post e visualizzalo sul front-end del sito Web, il testo che hai modificato dovrebbe essere visualizzato al posto del testo originale.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e327430.png\" alt=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>Blocco modificabile sul front-end del sito web<\/p>\n<p>Se desideri che i tuoi blocchi vengano visualizzati in una categoria di blocchi personalizzata, aggiungi semplicemente il seguente codice alla radice del tuo plug-in (in questo 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>Questo registrer\u00e0 una categoria di blocco personalizzata nell&#8217;inseritore di blocchi.<\/p>\n<p>Quindi tutto ci\u00f2 che devi fare \u00e8 regolare l&#8217; <code>category<\/code>argomento della <code>registerBlockType<\/code>funzione <code>\/src\/index.js<\/code>per fare riferimento alla categoria del tuo blocco e ricompilare:<\/p>\n<pre><code>\ncategory: 'wholesome-blocks',\n<\/code><\/pre>\n<p>Ora quando verrai a inserire il tuo blocco, lo troverai nella categoria di blocco appena creata:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e40fe2e.png\" alt=\"Creazione di un plug-in per l&#039;editor blocchi di WordPress (Gutenberg)\" \/>Categoria blocco personalizzato nell&#8217;inseritore blocco<\/p>\n<ul>\n<li>Dai un&#8217;occhiata <a href=\"https:\/\/wholesomecode.ltd\/guides\/php-render-block-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">all&#8217;utilizzo di PHP per rendere il tuo blocco con blocchi dinamici<\/a><\/li>\n<li>Guarda <a href=\"https:\/\/wholesomecode.ltd\/guides\/post-meta-fields-store-attributes-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">l&#8217;utilizzo dei meta campi dei post come attributi nel tuo blocco<\/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\">Aggiungi una barra laterale del blocco con InspectorControls<\/a><\/li>\n<li>Estendi il tuo plug-in <a href=\"https:\/\/wholesomecode.ltd\/guides\/entry-points-wordpress-create-block-script\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aggiungendo ulteriori punti di ingresso al file webpack.config<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wholesomecode.ltd\" class=\"external external_icon\">wholesomecode.ltd<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se non conosci WordPress Block Editor (Gutenberg) ti starai chiedendo come iniziare a creare il tuo plug-in. Fortunatamente il team di sviluppo di WordPress ha un pratico &#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":[896,939,751,804,814,720,844],"tags":[1168],"class_list":["post-229178","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-gutenberg-6","category-open-source-projektmanagement-3","category-php-6","category-plugin-2","category-sviluppatore","category-tutorial","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/229178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=229178"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/229178\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/223619"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=229178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=229178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=229178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}