{"id":1869,"date":"2024-08-19T07:56:15","date_gmt":"2024-08-19T05:56:15","guid":{"rendered":"https:\/\/asgru.com\/?p=1869"},"modified":"2026-09-14T03:00:24","modified_gmt":"2026-09-14T01:00:24","slug":"creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1","status":"publish","type":"post","link":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/","title":{"rendered":"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress &#8211; parte 1"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\" id=\"ember2198\">Con questa serie di materiali pratici, voglio mostrarti fino a che punto si \u00e8 evoluto lo sviluppo WordPress. Nel 2024, uno sviluppatore WordPress \u00e8 principalmente uno sviluppatore frontend che deve avere una solida conoscenza di HTML\/CSS, React, delle specificit\u00e0 di WordPress, nonch\u00e9 di PHP per scrivere autonomamente il backend dei blocchi creati. Ammettilo, pensavi si trattasse solo di cliccare pulsanti in Elementor, vero? \ud83d\ude42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2199\">L\u2019editor a blocchi di WordPress (Gutenberg) ha trasformato significativamente il processo di creazione e modifica dei contenuti sui siti WordPress, fornendo agli sviluppatori potenti strumenti per creare blocchi personalizzabili e funzionali. In questa guida creeremo il nostro componente &#8220;Todo-List&#8221;, che consente agli utenti di creare elenchi di attivit\u00e0 e inviare dati al server quando cambia lo stato delle attivit\u00e0.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2200\">Elementi di base del blocco<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2201\">Il blocco che creeremo sar\u00e0 composto da diversi elementi chiave:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>RichText<\/strong>: un componente che consente agli utenti di inserire e modificare testo all\u2019interno del blocco.<\/li>\n\n\n\n<li><strong>InspectorControls<\/strong>: un pannello che fornisce impostazioni e controlli per il blocco nell\u2019editor.<\/li>\n\n\n\n<li><strong>CheckboxControl<\/strong>: un elemento di controllo utilizzato per contrassegnare le attivit\u00e0 come completate.<\/li>\n\n\n\n<li><strong>useState<\/strong>: un hook che gestisce lo stato delle attivit\u00e0 all\u2019interno del blocco.<\/li>\n\n\n\n<li><strong>fetch API<\/strong>: utilizzata per inviare i dati delle attivit\u00e0 al server.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2203\">Ogni blocco viene creato come plugin separato, che pu\u00f2 essere riutilizzato in altri progetti WordPress. Ci\u00f2 consente di integrare facilmente il blocco creato in qualsiasi altro sito basato su WordPress.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2204\">Configurazione dell\u2019ambiente di sviluppo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2205\">Prima di iniziare a creare il componente, \u00e8 importante assicurarsi che l\u2019ambiente di sviluppo sia configurato correttamente. Per sviluppare il blocco saranno necessari i seguenti strumenti:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>WordPress<\/strong>: assicurati che la tua versione di WordPress sia la 5.0 o superiore, poich\u00e9 l\u2019editor a blocchi \u00e8 stato introdotto in questa versione.<\/li>\n\n\n\n<li><strong>Node.js e npm<\/strong>: necessari per lavorare con JavaScript e gestire le dipendenze.<\/li>\n\n\n\n<li><strong>WP-CLI<\/strong> (facoltativo): uno strumento da riga di comando per lavorare con WordPress, che pu\u00f2 semplificare lo sviluppo.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2207\">Installazione di Node.js e npm<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2208\">Se Node.js e npm non sono ancora installati sul tuo computer, scaricali e installali dal&nbsp;sito web ufficiale di Node.js.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2209\">Dopo l\u2019installazione, esegui i seguenti comandi per assicurarti che tutto sia installato correttamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>node -v\nnpm -v<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2210\">Se i comandi restituiscono le versioni, tutto funziona correttamente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2211\">Creazione del blocco Todo-List<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2212\">Per accelerare il processo di creazione del blocco, puoi utilizzare un comando che generer\u00e0 automaticamente l\u2019intera struttura del progetto, comprese configurazioni e file.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2213\">Passaggio 1: creazione del blocco tramite comando<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2214\">Apri il terminale ed esegui il seguente comando per creare automaticamente il blocco &#8220;Todo-List&#8221;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npx @wordpress\/create-block@latest todo-list<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2215\">Questo comando eseguir\u00e0 per te i seguenti passaggi:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Inizializzazione del progetto:<\/strong> il comando creer\u00e0 una nuova directory denominata\u00a0todo-list, contenente tutti i file e la struttura necessari per il blocco.<\/li>\n\n\n\n<li><strong>Installazione delle dipendenze:<\/strong> tutti i pacchetti necessari, come\u00a0@wordpress\/scripts, verranno installati automaticamente.<\/li>\n\n\n\n<li><strong>Creazione della struttura dei file:<\/strong> la struttura includer\u00e0 le cartelle\u00a0src\u00a0e\u00a0build, nonch\u00e9 un file\u00a0index.js\u00a0con il codice di base del blocco.<\/li>\n\n\n\n<li><strong>Configurazione di <\/strong>block.json:\u00a0questo file verr\u00e0 creato con la configurazione di base che definisce il blocco &#8220;Todo-List&#8221;.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2217\">Struttura dei file e descrizione<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2218\">Dopo aver eseguito il comando, verr\u00e0 creata la seguente struttura del progetto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>todo-list\/\n\u2502\n\u251c\u2500\u2500 src\/\n\u2502   \u2514\u2500\u2500 index.js\n\u2502\n\u251c\u2500\u2500 build\/\n\u2502\n\u251c\u2500\u2500 block.json\n\u251c\u2500\u2500 package.json\n\u2514\u2500\u2500 README.md<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2219\">1.&nbsp;src\/index.js<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2220\">Il file&nbsp;index.js&nbsp;nella cartella&nbsp;src&nbsp;contiene tutto il codice sorgente del blocco. Qui viene implementata la logica del blocco, inclusi il suo aspetto e l\u2019interazione con l\u2019utente. Le parti principali del codice riguardano la registrazione del blocco tramite la funzione&nbsp;registerBlockType, la configurazione degli attributi e la definizione delle funzioni per modificare e salvare il blocco.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2221\">Contenuto di esempio di&nbsp;index.js:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { registerBlockType } from '@wordpress\/blocks';\nimport { useState } from '@wordpress\/element';\nimport { RichText, InspectorControls } from '@wordpress\/block-editor';\nimport { PanelBody, CheckboxControl } from '@wordpress\/components';\n\nregisterBlockType('todo-plugin\/todo-list', {\n    title: 'Todo List',\n    icon: 'list-view',\n    category: 'widgets',\n    attributes: {\n        tasks: {\n            type: 'array',\n            default: &#091;],\n        },\n    },\n    edit({ attributes, setAttributes }) {\n        const { tasks } = attributes;\n        const &#091;taskText, setTaskText] = useState('');\n\n        const addTask = () =&gt; {\n            if (taskText) {\n                const newTasks = &#091;...tasks, { text: taskText, done: false }];\n                setAttributes({ tasks: newTasks });\n                setTaskText('');\n                sendTasksToServer(newTasks);\n            }\n        };\n\n        const toggleTaskDone = (index) =&gt; {\n            const newTasks = tasks.map((task, i) =&gt;\n                i === index ? { ...task, done: !task.done } : task\n            );\n            setAttributes({ tasks: newTasks });\n            sendTasksToServer(newTasks);\n        };\n\n        const sendTasksToServer = (tasks) =&gt; {\n            \/\/ Example of sending data to the server\n            fetch('\/wp-json\/todo\/v1\/update', {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                },\n                body: JSON.stringify({ tasks }),\n            });\n        };\n\n        return (\n            &lt;div&gt;\n                &lt;InspectorControls&gt;\n                    &lt;PanelBody title=\"Tasks\"&gt;\n                        {tasks.map((task, index) =&gt; (\n                            &lt;CheckboxControl\n                                key={index}\n                                label={task.text}\n                                checked={task.done}\n                                onChange={() =&gt; toggleTaskDone(index)}\n                            \/&gt;\n                        ))}\n                    &lt;\/PanelBody&gt;\n                &lt;\/InspectorControls&gt;\n                &lt;div&gt;\n                    &lt;RichText\n                        tagName=\"p\"\n                        value={taskText}\n                        onChange={(text) =&gt; setTaskText(text)}\n                        placeholder=\"Enter new task\"\n                    \/&gt;\n                    &lt;button onClick={addTask}&gt;Add Task&lt;\/button&gt;\n                &lt;\/div&gt;\n                &lt;ul&gt;\n                    {tasks.map((task, index) =&gt; (\n                        &lt;li key={index}&gt;\n                            &lt;CheckboxControl\n                                label={task.text}\n                                checked={task.done}\n                                onChange={() =&gt; toggleTaskDone(index)}\n                            \/&gt;\n                        &lt;\/li&gt;\n                    ))}\n                &lt;\/ul&gt;\n            &lt;\/div&gt;\n        );\n    },\n    save({ attributes }) {\n        const { tasks } = attributes;\n\n        return (\n            &lt;ul&gt;\n                {tasks.map((task, index) =&gt; (\n                    &lt;li key={index}&gt;\n                        &lt;RichText.Content\n                            tagName=\"span\"\n                            value={task.text}\n                            style={{ textDecoration: task.done ? 'line-through' : 'none' }}\n                        \/&gt;\n                    &lt;\/li&gt;\n                ))}\n            &lt;\/ul&gt;\n        );\n    },\n});<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2222\">2.\u00a0build<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2223\">La cartella&nbsp;build&nbsp;\u00e8 destinata a contenere i file compilati. Dopo aver compilato il progetto con il comando&nbsp;npm run build, il file&nbsp;index.js&nbsp;pronto all\u2019uso verr\u00e0 inserito in questa cartella e sar\u00e0 utilizzato da WordPress per visualizzare e far funzionare il blocco.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2224\">3.&nbsp;block.json<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2225\">Il file&nbsp;block.json&nbsp;contiene i metadati del blocco. Definisce il nome, la categoria, l\u2019icona, gli script e gli stili necessari al suo funzionamento. Questo file \u00e8 essenziale per registrare il blocco in WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2226\">Contenuto di esempio di&nbsp;block.json:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"apiVersion\": 2,\n  \"name\": \"todo-plugin\/todo-list\",\n  \"title\": \"Todo List\",\n  \"category\": \"widgets\",\n  \"icon\": \"list-view\",\n  \"description\": \"A customizable todo list block.\",\n  \"keywords\": &#091; \"todo\", \"tasks\", \"list\" ],\n  \"version\": \"1.0.0\",\n  \"textdomain\": \"todo-list\",\n  \"editorScript\": \"file:.\/build\/index.js\"\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2227\">4.&nbsp;package.json<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2228\">Il file&nbsp;package.json&nbsp;contiene informazioni sul progetto e sulle relative dipendenze. Gestisce l\u2019installazione e l\u2019utilizzo dei pacchetti necessari per sviluppare e compilare il blocco. Questo file viene creato automaticamente durante l\u2019inizializzazione del progetto e viene aggiornato man mano che vengono aggiunte nuove dipendenze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2229\">Contenuto di esempio di&nbsp;package.json:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"name\": \"todo-list\",\n  \"version\": \"1.0.0\",\n  \"description\": \"A custom block for todo list\",\n  \"scripts\": {\n    \"build\": \"wp-scripts build\",\n    \"start\": \"wp-scripts start\"\n  },\n  \"devDependencies\": {\n    \"@wordpress\/scripts\": \"^24.0.0\"\n  }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2230\">5.&nbsp;README.md<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2231\">Il file&nbsp;README.md&nbsp;contiene una descrizione del progetto, istruzioni per l\u2019installazione e l\u2019utilizzo e altre informazioni importanti che potrebbero essere necessarie a sviluppatori o utenti. Questo file \u00e8 utile per documentare il progetto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2232\">Compilazione del progetto<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2233\">Dopo aver apportato modifiche al codice, compila il progetto per ottenere un file pronto all\u2019uso per WordPress:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">npm run build<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2234\">Il comando&nbsp;build&nbsp;compiler\u00e0 il codice e lo inserir\u00e0 nella cartella&nbsp;build.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2235\">Registrazione del blocco in WordPress<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2236\">Ora che il blocco \u00e8 pronto, deve essere registrato in WordPress. Per farlo, aggiungi il seguente codice al file del tuo plugin o tema:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function todo_plugin_register_block() {\n    wp_register_script(\n        'todo-list-editor-script',\n        plugins_url( 'build\/index.js', __FILE__ ),\n        array( 'wp-blocks', 'wp-element', 'wp-editor' ),\n        filemtime( plugin_dir_path( __FILE__ ) . 'build\/index.js' )\n    );\n\n    register_block_type( 'todo-plugin\/todo-list', array(\n        'editor_script' =&gt; 'todo-list-editor-script',\n    ) );\n}\nadd_action( 'init', 'todo_plugin_register_block' );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2237\">Questo codice registrer\u00e0 il blocco in WordPress e accoder\u00e0 il file JavaScript compilato.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ember2238\">Conclusione<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ember2239\">L\u2019utilizzo del comando&nbsp;npx @wordpress\/create-block@latest&nbsp;accelera significativamente il processo di creazione di un nuovo blocco per l\u2019editor a blocchi di WordPress. In questa guida abbiamo visto come creare un blocco &#8220;Todo-List&#8221; che consente agli utenti di creare elenchi di attivit\u00e0 e gestirne il completamento, con i dati inviati al server. Questo componente pu\u00f2 essere ampliato aggiungendo nuove funzionalit\u00e0 e migliorando l\u2019interazione con l\u2019utente, aprendo ampie possibilit\u00e0 di personalizzazione del tuo sito WordPress.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con questa serie di materiali pratici, voglio mostrarti fino a che punto si \u00e8 evoluto lo sviluppo WordPress. Nel 2024, uno sviluppatore WordPress \u00e8 principalmente uno sviluppatore frontend che deve avere una solida conoscenza di HTML\/CSS, React, delle specificit\u00e0 di WordPress, nonch\u00e9 di PHP per scrivere autonomamente il backend dei blocchi creati. Ammettilo, pensavi si [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":907,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1869","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress - parte 1 - asgru<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress - parte 1 - asgru\" \/>\n<meta property=\"og:description\" content=\"Con questa serie di materiali pratici, voglio mostrarti fino a che punto si \u00e8 evoluto lo sviluppo WordPress. Nel 2024, uno sviluppatore WordPress \u00e8 principalmente uno sviluppatore frontend che deve avere una solida conoscenza di HTML\/CSS, React, delle specificit\u00e0 di WordPress, nonch\u00e9 di PHP per scrivere autonomamente il backend dei blocchi creati. Ammettilo, pensavi si [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/\" \/>\n<meta property=\"og:site_name\" content=\"asgru\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/asgru.wp\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-19T05:56:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-14T01:00:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/asgru.com\/wp-content\/uploads\/2024\/08\/to-do-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1186\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"asgru\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ArtemKondranin\" \/>\n<meta name=\"twitter:site\" content=\"@ArtemKondranin\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"asgru\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/\"},\"author\":{\"name\":\"asgru\",\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/#\\\/schema\\\/person\\\/8f6cca385f5ae3eb7802b1e40b721576\"},\"headline\":\"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress &#8211; parte 1\",\"datePublished\":\"2024-08-19T05:56:15+00:00\",\"dateModified\":\"2026-09-14T01:00:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/\"},\"wordCount\":960,\"publisher\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/asgru.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/to-do-scaled.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/\",\"url\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/\",\"name\":\"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress - parte 1 - asgru\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/asgru.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/to-do-scaled.png\",\"datePublished\":\"2024-08-19T05:56:15+00:00\",\"dateModified\":\"2026-09-14T01:00:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/asgru.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/to-do-scaled.png\",\"contentUrl\":\"https:\\\/\\\/asgru.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/to-do-scaled.png\",\"width\":2560,\"height\":1186},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/asgru.com\\\/it\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress &#8211; parte 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/asgru.com\\\/it\\\/\",\"name\":\"asgru\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/asgru.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/#organization\",\"name\":\"asgru\",\"url\":\"https:\\\/\\\/asgru.com\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/asgru.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo-black.svg\",\"contentUrl\":\"https:\\\/\\\/asgru.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo-black.svg\",\"caption\":\"asgru\"},\"image\":{\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/asgru.wp\\\/\",\"https:\\\/\\\/x.com\\\/ArtemKondranin\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/asgru\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/asgru.com\\\/it\\\/#\\\/schema\\\/person\\\/8f6cca385f5ae3eb7802b1e40b721576\",\"name\":\"asgru\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8226b63c28c55f65ad493c4aacf00e751309b5d3005e6aef331fd48ac864080d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8226b63c28c55f65ad493c4aacf00e751309b5d3005e6aef331fd48ac864080d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8226b63c28c55f65ad493c4aacf00e751309b5d3005e6aef331fd48ac864080d?s=96&d=mm&r=g\",\"caption\":\"asgru\"},\"sameAs\":[\"http:\\\/\\\/asgru.loc\"],\"url\":\"https:\\\/\\\/asgru.com\\\/it\\\/author\\\/asgru\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress - parte 1 - asgru","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/","og_locale":"it_IT","og_type":"article","og_title":"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress - parte 1 - asgru","og_description":"Con questa serie di materiali pratici, voglio mostrarti fino a che punto si \u00e8 evoluto lo sviluppo WordPress. Nel 2024, uno sviluppatore WordPress \u00e8 principalmente uno sviluppatore frontend che deve avere una solida conoscenza di HTML\/CSS, React, delle specificit\u00e0 di WordPress, nonch\u00e9 di PHP per scrivere autonomamente il backend dei blocchi creati. Ammettilo, pensavi si [&hellip;]","og_url":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/","og_site_name":"asgru","article_publisher":"https:\/\/www.facebook.com\/asgru.wp\/","article_published_time":"2024-08-19T05:56:15+00:00","article_modified_time":"2026-09-14T01:00:24+00:00","og_image":[{"width":2560,"height":1186,"url":"https:\/\/asgru.com\/wp-content\/uploads\/2024\/08\/to-do-scaled.png","type":"image\/png"}],"author":"asgru","twitter_card":"summary_large_image","twitter_creator":"@ArtemKondranin","twitter_site":"@ArtemKondranin","twitter_misc":{"Scritto da":"asgru","Tempo di lettura stimato":"7 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/#article","isPartOf":{"@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/"},"author":{"name":"asgru","@id":"https:\/\/asgru.com\/it\/#\/schema\/person\/8f6cca385f5ae3eb7802b1e40b721576"},"headline":"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress &#8211; parte 1","datePublished":"2024-08-19T05:56:15+00:00","dateModified":"2026-09-14T01:00:24+00:00","mainEntityOfPage":{"@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/"},"wordCount":960,"publisher":{"@id":"https:\/\/asgru.com\/it\/#organization"},"image":{"@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/#primaryimage"},"thumbnailUrl":"https:\/\/asgru.com\/wp-content\/uploads\/2024\/08\/to-do-scaled.png","articleSection":["Uncategorized"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/","url":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/","name":"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress - parte 1 - asgru","isPartOf":{"@id":"https:\/\/asgru.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/#primaryimage"},"image":{"@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/#primaryimage"},"thumbnailUrl":"https:\/\/asgru.com\/wp-content\/uploads\/2024\/08\/to-do-scaled.png","datePublished":"2024-08-19T05:56:15+00:00","dateModified":"2026-09-14T01:00:24+00:00","breadcrumb":{"@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/#primaryimage","url":"https:\/\/asgru.com\/wp-content\/uploads\/2024\/08\/to-do-scaled.png","contentUrl":"https:\/\/asgru.com\/wp-content\/uploads\/2024\/08\/to-do-scaled.png","width":2560,"height":1186},{"@type":"BreadcrumbList","@id":"https:\/\/asgru.com\/it\/creazione-di-un-componente-todo-list-per-leditor-a-blocchi-di-wordpress-parte-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/asgru.com\/it\/home\/"},{"@type":"ListItem","position":2,"name":"Creazione di un componente Todo-List per l\u2019editor a blocchi di WordPress &#8211; parte 1"}]},{"@type":"WebSite","@id":"https:\/\/asgru.com\/it\/#website","url":"https:\/\/asgru.com\/it\/","name":"asgru","description":"","publisher":{"@id":"https:\/\/asgru.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/asgru.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/asgru.com\/it\/#organization","name":"asgru","url":"https:\/\/asgru.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/asgru.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/asgru.com\/wp-content\/uploads\/2025\/06\/logo-black.svg","contentUrl":"https:\/\/asgru.com\/wp-content\/uploads\/2025\/06\/logo-black.svg","caption":"asgru"},"image":{"@id":"https:\/\/asgru.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/asgru.wp\/","https:\/\/x.com\/ArtemKondranin","https:\/\/www.linkedin.com\/in\/asgru\/"]},{"@type":"Person","@id":"https:\/\/asgru.com\/it\/#\/schema\/person\/8f6cca385f5ae3eb7802b1e40b721576","name":"asgru","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/8226b63c28c55f65ad493c4aacf00e751309b5d3005e6aef331fd48ac864080d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8226b63c28c55f65ad493c4aacf00e751309b5d3005e6aef331fd48ac864080d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8226b63c28c55f65ad493c4aacf00e751309b5d3005e6aef331fd48ac864080d?s=96&d=mm&r=g","caption":"asgru"},"sameAs":["http:\/\/asgru.loc"],"url":"https:\/\/asgru.com\/it\/author\/asgru\/"}]}},"_links":{"self":[{"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/posts\/1869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/comments?post=1869"}],"version-history":[{"count":1,"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/posts\/1869\/revisions"}],"predecessor-version":[{"id":1870,"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/posts\/1869\/revisions\/1870"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/media\/907"}],"wp:attachment":[{"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/media?parent=1869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/categories?post=1869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/asgru.com\/it\/wp-json\/wp\/v2\/tags?post=1869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}