L'editor di blocco Gutenberg (introdotto in WordPress 5.0) è diventato il modo predefinito per costruire contenuti in WordPress. Mentre ci sono migliaia di blocchi pre-made da plugin e temi, la creazione del proprio blocco Gutenberg personalizzato ti dà il controllo completo - perfetto per elementi di marca, componenti riutilizzabili, o funzionalità uniche che nessun blocco esistente offre. Nel 2026, con l'editing completo e temi di blocco ora standard, i blocchi personalizzati sono più importanti che mai per le agenzie, gli sviluppatori e le aziende che desiderano un design coerente tra le pagine.
A Cope Business, costruiamo blocchi Gutenberg personalizzati per i clienti durante il nostro servizi tecnici di audit SEO per migliorare la coerenza dei contenuti, la velocità della pagina e l'esperienza dell'utente senza contare su forti plugin di terze parti.
Questa guida principiante-intermedio vi mostra due modi pratici per creare un blocco Gutenberg personalizzato in WordPress — utilizzando un plugin (più semplice) e da zero con il codice (più flessibile).
Su questa pagina
TogglePerché creare un blocco Gutenberg personalizzato?
- Consistenza del marchio — Crea elementi riutilizzabili che corrispondono al tuo sistema di progettazione
- Funzionalità unica — Aggiungi caratteristiche che nessun blocco esistente ha (ad esempio, tabelle di prezzi personalizzati, testimonianze con valutazioni)
- Prestazioni — Evitare i plugin gonfiati; solo caricare ciò di cui hai bisogno
- Affidabilità — Utilizzare lo stesso blocco tra post, pagine e modelli
- Il futuro — I temi del blocco e l'editing del sito completo rendono i blocchi personalizzati più potenti
Metodo 1: Utilizzando un Plugin – modo più semplice (Nessun codice richiesto)
Se si desidera creare blocchi senza scrivere JavaScript/PHP, utilizzare un plugin di blocco costruttore.
Plugin consigliato: Block Lab o Kadence Blocks (Free/Pro)
Migliore opzione gratuita: Blocchi Kadence (free core + Pro)
Passi
- Installazione Blocchi Kadence da Spine > Aggiungi nuovo.
- Vai a Blocchi di frequenza > Libreria del blocco → Abilitare qualsiasi blocchi di avviamento ti piace.
- Per blocchi veramente personalizzati:
- Uso Kadence Blocks Pro (~$79/anno) → Funzione di blocchi personalizzati avanzati
- O uso Laboratorio di blocco (gratuito) + Campi personalizzati avanzati (ACF) (free/pro)
- In ACF → Crea un nuovo Field Group → Aggiungi campi (testo, immagine, ripetitore, ecc.)
- In Block Lab → Crea un nuovo blocco → Link ai campi ACF → Modello di design in PHP/HTML
- Salva → Nuovo blocco appare nell'inserto Gutenberg.
Alternativa: Generatore di blocco Gutenberg (attrezzo online) → Genera il codice → incolla in WPCode.
Punti positivi: No / codice basso, configurazione visiva, veloce.
Punti negativi: Meno flessibilità del codice puro; può aggiungere bloat.
Metodo 2: Creazione di un blocco personalizzato da Scratch (Metodo di codice – La maggior parte potente)
Questo metodo dà il pieno controllo ed è resistente al futuro per i temi del blocco.
Prerequisiti
- Locale/staging (LocalWP o DevKinsta)
- Node.js & npm installato
- Conoscenze di base JavaScript & PHP
- Editor di codici (Codice VS)
Step-by-Step: Crea un semplice blocco “Call to Action”
- Crea cartella Plugin
- /wp-content/plugins/cope-custom-blocks/Create: far fronte-custom-blocks.php
PHP<?php /** * Plugin Name: Cope Custom Gutenberg Blocks * Description: Custom blocks for Cope Business sites * Version: 1.0 * Author: Cope Business */ function cope_register_custom_blocks() { if ( ! function_exists( 'register_block_type' ) ) { return; } register_block_type( __DIR__ . '/blocks/call-to-action' ); } add_action( 'init', 'cope_register_custom_blocks' ); function cope_enqueue_block_assets() { wp_enqueue_script( 'cope-blocks-editor', plugins_url( '/blocks/call-to-action/index.js', __FILE__ ), array( 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ), filemtime( plugin_dir_path( __FILE__ ) . 'blocks/call-to-action/index.js' ) ); wp_enqueue_style( 'cope-blocks-style', plugins_url( '/blocks/call-to-action/style.css', __FILE__ ), array(), filemtime( plugin_dir_path( __FILE__ ) . 'blocks/call-to-action/style.css' ) ); } add_action( 'enqueue_block_editor_assets', 'cope_enqueue_block_assets' );
- Crea cartella blocco & file
- Crea cartella: /blocks/call-to-action/Aggiungi file:
- block.jsonindex.jseditor.cssstyle.css
- Crea cartella: /blocks/call-to-action/Aggiungi file:
JSON{ "apiVersion": 3, "name": "cope/call-to-action", "title": "Call to Action", "category": "text", "icon": "megaphone", "description": "A custom call to action block", "supports": { "html": false }, "textdomain": "cope-blocks", "editorScript": "file:./index.js", "style": "file:./style.css", "editorStyle": "file:./editor.css", "attributes": { "title": { "type": "string", "default": "Ready to Get Started?" }, "content": { "type": "string", "default": "Contact us today for a free consultation." }, "buttonText": { "type": "string", "default": "Get in Touch" }, "buttonUrl": { "type": "string", "default": "" } } }
- indice (editor & save logic)
JavaScriptimport { registerBlockType } from '@wordpress/blocks'; import { TextControl, URLInputButton } from '@wordpress/components'; import { useBlockProps } from '@wordpress/block-editor'; registerBlockType( 'cope/call-to-action', { edit: ( { attributes, setAttributes } ) => { const blockProps = useBlockProps(); return ( <div { ...blockProps }> <TextControl label="Title" value={ attributes.title } onChange={ ( val ) => setAttributes( { title: val } ) } /> <TextControl label="Content" value={ attributes.content } onChange={ ( val ) => setAttributes( { content: val } ) } /> <URLInputButton label="Button URL" url={ attributes.buttonUrl } onChange={ ( url ) => setAttributes( { buttonUrl: url } ) } /> <TextControl label="Button Text" value={ attributes.buttonText } onChange={ ( val ) => setAttributes( { buttonText: val } ) } /> </div> ); }, save: ( { attributes } ) => { const blockProps = useBlockProps.save(); return ( <div { ...blockProps }> <h3>{ attributes.title }</h3> <p>{ attributes.content }</p> { attributes.buttonUrl && ( <a href={ attributes.buttonUrl } className="button"> { attributes.buttonText } </a> ) } </div> ); }, } );
- stile.css & editor.css — Aggiungere lo stile di base.
- Attiva Plugin → Vai a Plugin → Attivare “Cope Custom Gutenberg Blocks”.
- Test: Aggiungi blocco in editor → “Cope / Call to Action” appare → Personalizza e salva.
Punti positivi: Controllo completo, riutilizzabile, nessun plugin extra. Punti negativi: Richiede conoscenze JavaScript/PHP; testare accuratamente.
Migliori pratiche per blocchi Gutenberg personalizzati
- Utilizzare sempre un plugin o tema bambino — mai modificare i file core.
- Usa @wordpress/scripts per lo sviluppo di blocchi moderni (npm start/build).
- Prova su dispositivi mobili, browser diversi e temi di blocco.
- Tenere i blocchi leggeri — evitare pesanti dipendenze.
- Aggiungere stili di blocco e variazioni per flessibilità.
- Utilizzare @wordpress/block-editor hooks per la migliore compatibilità.
Blocchi personalizzati ti danno elementi marcati, riutilizzabili — grande per coerenza.
Pensieri finali
Creare un blocco Gutenberg personalizzato in WordPress consente di aggiungere esattamente la funzionalità e progettare le esigenze del tuo sito. Iniziare con un plugin come Kadence Blocks o Block Lab se si desidera codice basso, o costruire da zero per il massimo controllo.
Blocchi personalizzati a prova di futuro il tuo sito per temi di blocco e la modifica del sito intero.
Hai bisogno di aiuto per creare blocchi personalizzati, ottimizzare il tuo editor, o migliorare le prestazioni complessive del sito? Contatto Cope Business per una consulenza tecnica gratuita SEO — costruiremo blocchi e soluzioni su misura per elevare la vostra esperienza WordPress.




