{"id":81166,"date":"2025-06-12T08:13:03","date_gmt":"2025-06-12T07:13:03","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=81166&#038;preview=true&#038;preview_id=81166"},"modified":"2025-06-16T08:13:53","modified_gmt":"2025-06-16T07:13:53","slug":"temi-ibridi","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/","title":{"rendered":"I Temi Ibridi di WordPress: un&#8217;analisi per utenti e sviluppatori"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-5-9\/\">WordPress 5.9<\/a> ha introdotto un nuovo modo di costruire siti web: il <a href=\"https:\/\/kinsta.com\/it\/blog\/full-site-editing-wordpress\/\">Full Site Editing<\/a>. \u00c8 stato un punto di svolta per gli utenti di WordPress perch\u00e9 ha cambiato completamente il modo in cui i temi di WordPress vengono sviluppati e funzionano.<\/p>\n<p>L&#8217;introduzione dell&#8217;FSE ha portato a una distinzione tra i temi che supportano pienamente le nuove funzionalit\u00e0 di costruzione del sito, noti anche come Temi a blocchi, e i temi tradizionali basati su PHP, che oggi chiamiamo Temi classici.<\/p>\n<p>Nel corso del tempo, molte funzioni create per i temi a blocchi sono state estese ai temi classici. Ci\u00f2 ha dato vita a una terza categoria di temi, i Temi ibridi, che sono progettati con la logica e la struttura dei Temi classici, ma con il supporto di varie funzioni tipiche dei Temi a blocchi.<\/p>\n<p>Questo articolo analizza i temi ibridi, le loro caratteristiche principali, il modo in cui gli sviluppatori possono migliorarli e quando sceglierli rispetto ai temi a blocchi.<\/p>\n<p>Cominciamo!<\/p>\n<figure id=\"attachment_193756\" aria-describedby=\"caption-attachment-193756\" style=\"width: 2940px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-193756 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/ttt-preview.jpg\" alt=\"Un'anteprima del tema Twenty Twenty-Two per WordPress\" width=\"2940\" height=\"1840\"><figcaption id=\"caption-attachment-193756\" class=\"wp-caption-text\">Twenty Twenty-Two \u00e8 il primo tema WordPress a supportare il Full Site Editing<\/figcaption><\/figure>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Temi classici o Temi ibridi?<\/h2>\n<p>Prima dell&#8217;introduzione dei temi a blocchi con <a href=\"https:\/\/kinsta.com\/it\/blog\/tema-twenty-twenty-two\/\">Twenty Twenty-Two<\/a> e WordPress 5.9, non esistevano i temi classici. Il termine \u00e8 nato per distinguerli dai temi a blocchi. I temi classici sono tutti i temi WordPress che non supportano le funzionalit\u00e0 dei blocchi.<\/p>\n<figure id=\"attachment_193750\" aria-describedby=\"caption-attachment-193750\" style=\"width: 2940px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-193750 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-preview.jpg\" alt=\"Anteprima del tema Twenty Twenty-One Classic\/Hybrid\" width=\"2940\" height=\"1836\"><figcaption id=\"caption-attachment-193750\" class=\"wp-caption-text\">Un&#8217;anteprima del tema Twenty Twenty-One Hybrid<\/figcaption><\/figure>\n<p>Oggi non \u00e8 facile trovare temi classici puri perch\u00e9, a partire dalla versione 5.9, questi temi sono stati arricchiti con molte funzioni sviluppate per i temi a blocchi, rendendo le esperienze di modifica e progettazione delle due categorie di temi sempre pi\u00f9 sfumate.<\/p>\n<p>Detto questo, il modo di lavorare con i temi ibridi \u00e8 ancora diverso da quello dei temi a blocchi.<\/p>\n<h2>Caratteristiche di base dei temi ibridi<\/h2>\n<p>Con i temi ibridi, il sito pu\u00f2 sfruttare le capacit\u00e0 di editing dell&#8217;editor di blocchi di WordPress pur rimanendo compatibile con i plugin e le funzionalit\u00e0 tradizionali di WordPress, come i widget, i menu e i modelli di pagina.<\/p>\n<h3>Il Customizer di WordPress<\/h3>\n<p>I temi ibridi di solito supportano il <a href=\"https:\/\/kinsta.com\/it\/blog\/come-personalizzare-il-vostro-tema-wordpress\/#customizing-your-theme-via-the-customizer\">Customizer di WordPress<\/a>, un ambiente di configurazione visuale che permette di perfezionare l&#8217;aspetto del sito WordPress e di visualizzare l&#8217;anteprima delle modifiche in tempo reale.<\/p>\n<p>Il tema predefinito <a href=\"https:\/\/kinsta.com\/it\/blog\/twenty-twenty-one\/\">Twenty Twenty-One<\/a> \u00e8 un buon esempio di tema ibrido che offre le impostazioni pi\u00f9 comuni del Customizer, tra cui Identit\u00e0 del sito, Colori e modalit\u00e0 scura, Immagine di sfondo, Menu, Widget, Impostazioni della homepage e altro ancora.<\/p>\n<figure id=\"attachment_193760\" aria-describedby=\"caption-attachment-193760\" style=\"width: 2372px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-193760\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-customizer-1.jpg\" alt=\"Il Customizer con il tema Twenty Twenty-One\" width=\"2372\" height=\"1464\"><figcaption id=\"caption-attachment-193760\" class=\"wp-caption-text\">Il Customizer con il tema Twenty Twenty-One<\/figcaption><\/figure>\n<p>I temi possono registrare controlli specifici del Customizer, quindi le funzionalit\u00e0 variano a seconda del tema. L&#8217;immagine che segue mostra il Customizer di <a href=\"https:\/\/kinsta.com\/it\/blog\/temi-wordpress-veloci\/#2-neve\">Neve<\/a>, un tema ibrido leggero di ThemeIsle.<\/p>\n<figure id=\"attachment_194046\" aria-describedby=\"caption-attachment-194046\" style=\"width: 1870px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194046 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/wordpress-customizer-neve.jpg\" alt=\"Un'anteprima del Customizer del tema WordPress Neve\" width=\"1870\" height=\"1340\"><figcaption id=\"caption-attachment-194046\" class=\"wp-caption-text\">Un&#8217;anteprima del Customizer del tema WordPress Neve<\/figcaption><\/figure>\n<p>I temi possono anche registrare funzionalit\u00e0 avanzate per dare agli utenti un controllo granulare su aspetti specifici del design del sito. Neve, ad esempio, offre un potente builder per la creazione di intestazioni e footer.<\/p>\n<figure id=\"attachment_194047\" aria-describedby=\"caption-attachment-194047\" style=\"width: 1998px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194047 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/wordpress-customizer-neve-header-builder.jpg\" alt=\"Neve ha un costruttore di intestazioni nel Customizer\" width=\"1998\" height=\"1420\"><figcaption id=\"caption-attachment-194047\" class=\"wp-caption-text\">Neve ha un costruttore di intestazioni nel Customizer<\/figcaption><\/figure>\n<h3>Widget a blocchi<\/h3>\n<p>I temi ibridi permettono di personalizzare le aree dei widget utilizzando i blocchi, grazie all&#8217;<a href=\"https:\/\/wordpress.org\/documentation\/article\/block-based-widgets-editor\/\" target=\"_blank\" rel=\"noopener noreferrer\">editor dei widget a blocchi<\/a>. \u00c8 stato introdotto per la prima volta <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-5-8\/#blockbased-widgets-editor-and-block-widgets-in-the-customizer\">con WordPress 5.8<\/a> e possiamo provarlo con qualsiasi tema classico che utilizzi i widget.<\/p>\n<figure id=\"attachment_193761\" aria-describedby=\"caption-attachment-193761\" style=\"width: 2368px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-193761\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-block-widget.jpg\" alt=\"La schermata dei widget in Twenty Twenty-One\" width=\"2368\" height=\"1376\"><figcaption id=\"caption-attachment-193761\" class=\"wp-caption-text\">La schermata dei widget in Twenty Twenty-One<\/figcaption><\/figure>\n<p>L&#8217;interfaccia dell&#8217;editor dei widget \u00e8 simile a quella dell&#8217;editor dei post. L&#8217;immagine che segue mostra un blocco immagine nell&#8217;area widget del footer del tema Twenty Twenty-One.<\/p>\n<figure id=\"attachment_193992\" aria-describedby=\"caption-attachment-193992\" style=\"width: 2180px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-193992 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/widget-editor-tto.jpg\" alt=\"Una schermata dell'editor di widget con il tema Twenty Twenty-One\" width=\"2180\" height=\"1254\"><figcaption id=\"caption-attachment-193992\" class=\"wp-caption-text\">L&#8217;editor dei widget porta le funzionalit\u00e0 dei blocchi ai widget classici<\/figcaption><\/figure>\n<p>I widget classici come Categorie, Archivi, Post recenti o Commenti recenti sono ancora supportati nei temi ibridi. L&#8217;Editor di widget integra i widget classici di WordPress consentendo agli utenti di crearne di propri attraverso l&#8217;interfaccia a blocchi.<\/p>\n<h3>Style book e block pattern<\/h3>\n<p>Con le recenti <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-6-8\/#2-style-book-added-to-classic-themes\">modifiche introdotte con WordPress 6.8<\/a>, i temi ibridi che <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/themes\/theme-support\/#editor-styles\" target=\"_blank\" rel=\"noopener noreferrer\">supportano gli stili dell&#8217;editor<\/a> possono utilizzare il <strong>Libro degli stili<\/strong>, un&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-6-2\/#style-book\">interfaccia grafica<\/a> che consente agli utenti di visualizzare l&#8217;anteprima di qualsiasi blocco che pu\u00f2 essere utilizzato nel sito senza doverlo necessariamente inserire nei contenuti.<\/p>\n<p>\u00c8 possibile accedere al Libro degli stili nei temi ibridi da <strong>Aspetto<\/strong> &gt; <strong>Design<\/strong> &gt; <strong>Stili<\/strong>.<\/p>\n<p>L&#8217;immagine che segue mostra il Libro degli stili del tema ibrido Kadence.<\/p>\n<figure id=\"attachment_194055\" aria-describedby=\"caption-attachment-194055\" style=\"width: 2148px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194055 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/kadence-style-book.jpg\" alt=\"Il Libro degli stili del tema ibrido Kadence\" width=\"2148\" height=\"1412\"><figcaption id=\"caption-attachment-194055\" class=\"wp-caption-text\">Il Libro degli stili del tema ibrido Kadence<\/figcaption><\/figure>\n<p>Nella stessa interfaccia possiamo sfogliare e gestire i pattern.<\/p>\n<figure id=\"attachment_194056\" aria-describedby=\"caption-attachment-194056\" style=\"width: 2148px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194056 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/blocksy-patterns.jpg\" alt=\"Pattern del tema Blocksy\" width=\"2148\" height=\"1422\"><figcaption id=\"caption-attachment-194056\" class=\"wp-caption-text\">Pattern del tema Blocksy<\/figcaption><\/figure>\n<p>Per i temi ibridi che li supportano, i pattern sono disponibili nell&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/gutenberg-editor-wordpress\/\">Editor dei post<\/a>, che \u00e8 abilitato di default su tutte le installazioni di WordPress a partire dalla versione <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-5-0\/\">5.0<\/a>, a meno che non l&#8217;abbiamo <a href=\"https:\/\/kinsta.com\/it\/blog\/disabilitare-editor-wordpress-gutenberg\/\">disabilitato con il plugin Classic Editor<\/a>.<\/p>\n<figure id=\"attachment_194157\" aria-describedby=\"caption-attachment-194157\" style=\"width: 2876px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194157 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/patterns-in-the-post-editor.jpg\" alt=\"La sezione Patterns nel block inserter dell'Editor dei Post con il tema Twenty Twenty-One\" width=\"2876\" height=\"1376\"><figcaption id=\"caption-attachment-194157\" class=\"wp-caption-text\">La sezione Patterns nel block inserter dell&#8217;Editor dei Post con il tema Twenty Twenty-One<\/figcaption><\/figure>\n<h2>Struttura del tema: una panoramica per gli sviluppatori<\/h2>\n<p>I temi classici e i temi a blocchi non sono diversi solo in termini di funzionalit\u00e0 per l&#8217;utente finale. Sono diversi anche dal punto di vista strutturale.<\/p>\n<h3>Temi classici<\/h3>\n<p>I temi classici si basano su alcuni file principali, il pi\u00f9 importante dei quali \u00e8 il file <code>style.css<\/code>. Questo file fornisce i <a href=\"https:\/\/developer.wordpress.org\/themes\/core-concepts\/main-stylesheet\/#file-header\" target=\"_blank\" rel=\"noopener noreferrer\">metadati del tema<\/a> e determina l&#8217;aspetto del sito sul front-end.<\/p>\n<p>Oltre al foglio di stile del tema, i temi classici hanno di solito un <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-functions-php\/\">file <code>functions.php<\/code><\/a> utilizzato per creare le funzionalit\u00e0 e il supporto del tema.<\/p>\n<p>I temi classici si basano anche su template PHP che definiscono la struttura di una pagina e le sue aree principali: intestazione, corpo, barre laterali e footer. Quando un utente visita un post o una pagina, WordPress individua il template da utilizzare per rendere il contenuto sullo schermo secondo un rigido sistema di regole noto come <a href=\"https:\/\/kinsta.com\/it\/blog\/gerarchia-dei-template-wordpress\/\">gerarchia dei template<\/a>. I template pi\u00f9 comunemente utilizzati sono <code>index.php<\/code>, <code>page.php<\/code>, <code>single.php<\/code> e altri.<\/p>\n<p>I temi classici possono utilizzare funzioni PHP specifiche (<a href=\"https:\/\/kinsta.com\/it\/blog\/hook-wordpress\/\">hook e filtri<\/a>), che vengono eseguite in momenti specifici della vita di WordPress, consentendo agli sviluppatori di estendere le funzionalit\u00e0 di un tema utilizzando codice PHP nel file <code>functions.php<\/code> di un <a href=\"https:\/\/kinsta.com\/it\/blog\/child-theme-wordpress\/\">child theme<\/a>.<\/p>\n<p>Si pu\u00f2 intuire che la personalizzazione di un tema classico \u00e8 complessa per gli utenti che non hanno competenze di sviluppo.<\/p>\n<h3>Temi a blocchi<\/h3>\n<p>Anche i temi a blocchi hanno bisogno di uno <code>style.css<\/code> per fornire a WordPress i metadati del tema, ma si basano prevalentemente su un <a href=\"https:\/\/kinsta.com\/it\/blog\/theme-json\/\">file <code>theme.json<\/code><\/a>, un file di configurazione che definisce gli stili e le impostazioni globali del tema. Questo file <a href=\"https:\/\/kinsta.com\/it\/blog\/proprieta-coppie-chiave-theme-json\/\">contiene un oggetto JSON<\/a> le cui propriet\u00e0 definiscono le <a href=\"https:\/\/kinsta.com\/it\/blog\/tipografia-wordpress-theme-json\/\">impostazioni iniziali<\/a> necessarie per creare il layout e definire l&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/proprieta-css-personalizzate-theme-json\/\">aspetto<\/a> delle pagine del sito.<\/p>\n<p>I temi a blocchi utilizzano anche template e parti di template, ma questi sono strutturalmente diversi dai classici template PHP dei temi. Nei temi a blocchi, i template e le parti di template sono file HTML contenenti markup specifici e oggetti JSON. Ad esempio, analizziamo il template <code>home.html<\/code> del tema predefinito <a href=\"https:\/\/kinsta.com\/it\/blog\/tema-twenty-twenty-five\/\">Twenty Twenty-Five<\/a>:<\/p>\n<pre><code class=\"language-html\">&lt;!-- wp:template-part {\"slug\":\"header\"} \/--&gt;\n\n&lt;!-- wp:group {\"tagName\":\"main\",\"style\":{\"spacing\":{\"margin\":{\"top\":\"var:preset|spacing|60\"}}},\"layout\":{\"type\":\"constrained\"}} --&gt;\n&lt;main class=\"wp-block-group\" style=\"margin-top:var(--wp--preset--spacing--60)\"&gt;\n\t&lt;!-- wp:pattern {\"slug\":\"twentytwentyfive\/hidden-blog-heading\"} \/--&gt;\n\t&lt;!-- wp:pattern {\"slug\":\"twentytwentyfive\/template-query-loop\"} \/--&gt;\n&lt;\/main&gt;\n&lt;!-- \/wp:group --&gt;\n\n&lt;!-- wp:template-part {\"slug\":\"footer\"} \/--&gt;<\/code><\/pre>\n<p>Questo template \u00e8 composto da elementi strutturati sotto forma di tag HTML e commenti. I commenti possono riferirsi ad altri elementi tipici di un tema a blocchi, come le parti del template e i pattern, che sono composti da blocchi o altri elementi annidati.<\/p>\n<h2>Aggiungere le funzionalit\u00e0 dei blocchi ai temi ibridi<\/h2>\n<p>Come abbiamo detto in precedenza, con i temi classici \u00e8 necessario aggiungere del codice personalizzato per modificare il layout o le funzionalit\u00e0 di un sito, spesso coinvolgendo template file o il <code>functions.php<\/code>. Al contrario, i temi a blocchi permettono a chi non sviluppa di avere un maggiore controllo sul layout e sull&#8217;aspetto del sito.<\/p>\n<p>I temi ibridi offrono meno funzionalit\u00e0 dei blocchi rispetto ai temi a blocchi, ma possono comunque fornire un maggiore controllo sul layout e sullo stile grazie a pattern e agli stili globali.<\/p>\n<p>Analizziamo alcune potenti funzionalit\u00e0 tipiche dei temi a blocchi che possiamo integrare in un tema classico e scopriamo come implementarle in modo efficace.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"5\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>Stili globali<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-5-8\/\">WordPress 5.8<\/a> ha introdotto gli Stili Globali, un&#8217;interfaccia grafica che permette agli utenti di controllare l&#8217;aspetto del proprio sito web da una posizione centralizzata e agli sviluppatori di controllare gli stili dei siti WordPress attraverso un file <code>theme.json<\/code>.<\/p>\n<p>Per abilitare questa funzione in un tema ibrido, basta aggiungere un file <code>theme.json<\/code> nella cartella principale del tema. Vediamo alcune delle caratteristiche principali che possiamo aggiungere ad un tema ibrido con il <code>theme.json<\/code>.<\/p>\n<h4>Tipografia<\/h4>\n<p>Supponiamo di voler aggiungere ad un tema classico il supporto per tre famiglie di caratteri. In questo esempio utilizzeremo <a href=\"https:\/\/kinsta.com\/it\/blog\/twenty-twenty-one\/\">Twenty Twenty-One<\/a>.<\/p>\n<p>Per prima cosa, creiamo una cartella <code>fonts<\/code> sotto <code>assets<\/code> e carichiamo alcuni font a scelta. Aggiungeremo tre font: <code>Manrope<\/code> <code>Fira Code<\/code> e <code>Beiruti<\/code>. Possiamo ottenere questi font dal tema <a href=\"https:\/\/kinsta.com\/it\/blog\/tema-twenty-twenty-five\/\">Twenty Twenty-Five<\/a>.<\/p>\n<figure id=\"attachment_194169\" aria-describedby=\"caption-attachment-194169\" style=\"width: 1608px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194169 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/twenty-twenty-one-custom.jpg\" alt=\"Abbiamo aggiunto tre font e un file theme.json al tema Twenty Twenty-One\" width=\"1608\" height=\"1388\"><figcaption id=\"caption-attachment-194169\" class=\"wp-caption-text\">Abbiamo aggiunto tre font e un file theme.json al tema Twenty Twenty-One<\/figcaption><\/figure>\n<p>Apriamo l&#8217;editor di testo e creiamo il seguente <code>theme.json<\/code>:<\/p>\n<pre><code class=\"language-json\">{\n\t\"$schema\": \"https:\/\/schemas.wp.org\/trunk\/theme.json\",\n\t\"version\": 3,\n\t\"settings\": {\n\t\t\"layout\": {\n\t\t\t\"contentSize\": \"768px\",\n\t\t\t\"wideSize\": \"1024px\"\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontFamilies\": [\n\t\t\t\t{\n\t\t\t\t\t\"name\": \"Manrope\",\n\t\t\t\t\t\"slug\": \"manrope\",\n\t\t\t\t\t\"fontFamily\": \"Manrope, sans-serif\",\n\t\t\t\t\t\"fontFace\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"src\": [\n\t\t\t\t\t\t\t\t\"file:.\/assets\/fonts\/manrope\/Manrope-VariableFont_wght.woff2\"\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\"fontWeight\": \"200 800\",\n\t\t\t\t\t\t\t\"fontStyle\": \"normal\",\n\t\t\t\t\t\t\t\"fontFamily\": \"Manrope\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"name\": \"Fira Code\",\n\t\t\t\t\t\"slug\": \"fira-code\",\n\t\t\t\t\t\"fontFamily\": \"\\\"Fira Code\\\", monospace\",\n\t\t\t\t\t\"fontFace\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"src\": [\n\t\t\t\t\t\t\t\t\"file:.\/assets\/fonts\/fira-code\/FiraCode-VariableFont_wght.woff2\"\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\"fontWeight\": \"300 700\",\n\t\t\t\t\t\t\t\"fontStyle\": \"normal\",\n\t\t\t\t\t\t\t\"fontFamily\": \"\\\"Fira Code\\\"\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"name\": \"Beiruti\",\n\t\t\t\t\t\"slug\": \"beiruti\",\n\t\t\t\t\t\"fontFamily\": \"Beiruti, sans-serif\",\n\t\t\t\t\t\"fontFace\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"src\": [\n\t\t\t\t\t\t\t\t\"file:.\/assets\/fonts\/beiruti\/Beiruti-VariableFont_wght.woff2\"\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\"fontWeight\": \"300 700\",\n\t\t\t\t\t\t\t\"fontStyle\": \"normal\",\n\t\t\t\t\t\t\t\"fontFamily\": \"Beiruti\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t}\n}<\/code><\/pre>\n<p>La propriet\u00e0 <code>settings.typography.fontFamilies<\/code> permette di registrare un numero qualsiasi di <a href=\"https:\/\/developer.wordpress.org\/themes\/global-settings-and-styles\/settings\/typography\/#custom-font-families\" target=\"_blank\" rel=\"noopener noreferrer\">famiglie di font personalizzate<\/a>. Per ogni font, dovremo dichiarare le seguenti propriet\u00e0:<\/p>\n<ul>\n<li><code>name<\/code>: un titolo leggibile per la famiglia di font.<\/li>\n<li><code>slug<\/code>: uno slug obbligatorio per la famiglia di font. Verr\u00e0 aggiunto a una propriet\u00e0 CSS personalizzata: <code>--wp--preset--font-family--{slug}<\/code>.<\/li>\n<li><code>fontFamily<\/code>: un valore obbligatorio che corrisponder\u00e0 al valore CSS font-family.<\/li>\n<li><code>fontFace<\/code>: un array opzionale di font che vengono mappati alla regola &#8220;at&#8221; di CSS <code>@font-face<\/code>. \u00c8 necessario solo con i font personalizzati.<\/li>\n<\/ul>\n<p>Salviamo il <code>theme.json<\/code> e accediamo alla bacheca di WordPress. Creiamo un nuovo post o una nuova pagina, aggiungiamo un paragrafo con un testo di esempio e apriamo la barra laterale dei blocchi. Clicchiamo sul pulsante <strong>Typography Options<\/strong> e selezioniamo <strong>Font<\/strong>. Dovremmo trovare le opzioni per le famiglie di font appena aggiunte al tema.<\/p>\n<p>Le immagini che seguono mostrano l&#8217;aspetto della barra laterale del blocco Paragrafo prima e dopo l&#8217;aggiunta del <code>theme.json<\/code>.<\/p>\n<figure id=\"attachment_194170\" aria-describedby=\"caption-attachment-194170\" style=\"width: 2160px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194170 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-default-typography.png\" alt=\"Barra laterale del blocco Paragrafo con il tema Twenty Twenty-One senza theme.json\" width=\"2160\" height=\"950\"><figcaption id=\"caption-attachment-194170\" class=\"wp-caption-text\">Barra laterale del blocco Paragrafo con il tema Twenty Twenty-One senza theme.json<\/figcaption><\/figure>\n<figure id=\"attachment_194171\" aria-describedby=\"caption-attachment-194171\" style=\"width: 2334px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194171 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-typography-with-font-support.png\" alt=\"Barra laterale a blocchi Paragrafo con il tema Twenty Twenty-One con theme.json\" width=\"2334\" height=\"1080\"><figcaption id=\"caption-attachment-194171\" class=\"wp-caption-text\">Barra laterale a blocchi Paragrafo con il tema Twenty Twenty-One con theme.json<\/figcaption><\/figure>\n<p>Le propriet\u00e0 degli stili globali variano a seconda del tema. Oltre a <code>typography<\/code>, le propriet\u00e0 frequentemente supportate permettono di controllare la palette dei colori, il layout e gli stili personalizzati. Gli esempi che seguono sono stati testati su Twenty Twenty-One.<\/p>\n<h4>Palette dei colori, gradienti e filtri duotone<\/h4>\n<p>Possiamo aggiungere il <a href=\"https:\/\/developer.wordpress.org\/themes\/global-settings-and-styles\/settings\/color\/#custom-color-palette\" target=\"_blank\" rel=\"noopener noreferrer\">supporto dei colori personalizzati<\/a> utilizzando la propriet\u00e0 <code>settings.color<\/code> a livello di tema o di singolo blocco. Ad esempio, il codice che segue aggiunge due colori alla palette predefinita:<\/p>\n<pre><code class=\"language-json\">settings: {\n\t\"color\": {\n\t\t\"palette\": [\n\t\t\t{\n\t\t\t\t\"name\": \"Dark blue\",\n\t\t\t\t\"slug\": \"dark-blue\",\n\t\t\t\t\"color\": \"#1e73be\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"Bright green\",\n\t\t\t\t\"slug\": \"bright-green\",\n\t\t\t\t\"color\": \"#81d742\"\n\t\t\t}\n\t\t]\n\t},\n}<\/code><\/pre>\n<p>Possiamo utilizzare la propriet\u00e0 <code>settings.color.palette<\/code> per registrare tutti i colori che vogliamo.<\/p>\n<figure id=\"attachment_194172\" aria-describedby=\"caption-attachment-194172\" style=\"width: 1656px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194172 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-add-color-support.jpg\" alt=\"Aggiungere una palette di colori personalizzata a Twenty Twenty-One\" width=\"1656\" height=\"926\"><figcaption id=\"caption-attachment-194172\" class=\"wp-caption-text\">Aggiungere una palette di colori personalizzata a Twenty Twenty-One<\/figcaption><\/figure>\n<p>Possiamo anche aggiungere il supporto dei gradienti e dei filtri duotone:<\/p>\n<pre><code class=\"language-json\">settings: {\n\t\"color\": {\n\t\t\"gradients\": [\n\t\t\t{\n\t\t\t\t\"gradient\": \"linear-gradient(135deg, #0073e6, #8fceff)\",\n\t\t\t\t\"name\": \"Clear Sky\",\n\t\t\t\t\"slug\": \"clear-sky\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"gradient\": \"linear-gradient(to right top, #ff8c00, #ff0080)\",\n\t\t\t\t\"name\": \"Vivid Sunset\",\n\t\t\t\t\"slug\": \"vivid-sunset\"\n\t\t\t}\n\t\t]\n\t}\n}<\/code><\/pre>\n<figure id=\"attachment_194177\" aria-describedby=\"caption-attachment-194177\" style=\"width: 2142px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194177 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/hybrid-themes-adding-gradients.jpg\" alt=\"Abbiamo aggiunto due gradienti agli Stili Globali di Twenty Twenty-One tramite il theme.json\" width=\"2142\" height=\"1350\"><figcaption id=\"caption-attachment-194177\" class=\"wp-caption-text\">Abbiamo aggiunto due gradienti agli Stili Globali di Twenty Twenty-One tramite il theme.json<\/figcaption><\/figure>\n<pre><code class=\"language-json\">settings: {\n\t\"color\": {\n\t\t\"duotone\": [\n\t\t\t{\n\t\t\t\t\"colors\": [ \"#0A2F51\", \"#F5D04E\" ],\n\t\t\t\t\"name\": \"Deep Sea Gold\",\n\t\t\t\t\"slug\": \"deep-sea-gold\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"colors\": [ \"#3A0CA3\", \"#FFB703\" ],\n\t\t\t\t\"name\": \"Purple Amber\",\n\t\t\t\t\"slug\": \"purple-amber\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"colors\": [ \"#1B4332\", \"#BAE6C4\" ],\n\t\t\t\t\"name\": \"Forest Mist\",\n\t\t\t\t\"slug\": \"forest-mist\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t \"colors\": [ \"#000000\", \"#FFFFFF\" ],\n\t\t\t\t \"name\": \"Black and White\",\n\t\t\t\t \"slug\": \"black-and-white\"\n\t\t\t}\n\t\t]\n\t}\n}<\/code><\/pre>\n<figure id=\"attachment_194178\" aria-describedby=\"caption-attachment-194178\" style=\"width: 2246px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194178 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/hybrid-themes-adding-duotone.jpg\" alt=\"Filtri Duotone aggiunti agli Stili Globali in Twenty Twenty-One\" width=\"2246\" height=\"1080\"><figcaption id=\"caption-attachment-194178\" class=\"wp-caption-text\">Filtri Duotone aggiunti agli Stili Globali in Twenty Twenty-One<\/figcaption><\/figure>\n<h4>Layout<\/h4>\n<p>Possiamo anche personalizzare le impostazioni predefinite del layout. La <a href=\"https:\/\/developer.wordpress.org\/themes\/global-settings-and-styles\/settings\/layout\/\" target=\"_blank\" rel=\"noopener noreferrer\">propriet\u00e0<\/a> <code>settings.layout<\/code> permette di impostare la larghezza predefinita del contenuto e l&#8217;ampiezza dell&#8217;allineamento. Ecco un esempio:<\/p>\n<pre><code class=\"language-json\">\"settings\": {\n\t\"layout\": {\n\t\t\"contentSize\": \"768px\",\n\t\t\"wideSize\": \"1024px\"\n\t}\n}<\/code><\/pre>\n<p>Per una panoramica pi\u00f9 approfondita sul <code>theme.json<\/code>, si legga il nostro <a href=\"https:\/\/kinsta.com\/it\/blog\/theme-json\/\">tutorial completo sul <code>theme.json<\/code><\/a> e la <a href=\"https:\/\/developer.wordpress.org\/themes\/global-settings-and-styles\/\">documentazione ufficiale di WordPress<\/a>.<\/p>\n<h3>Variazioni degli stili del blocco<\/h3>\n<p>Introdotte per la prima volta <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-5-3\/#1-register-and-unregister-block-styles\">con WordPress 5.3<\/a>, le <a href=\"https:\/\/developer.wordpress.org\/themes\/features\/block-style-variations\/\" target=\"_blank\" rel=\"noopener noreferrer\">variazioni degli stili dei blocchi<\/a> consentono agli sviluppatori di creare stili alternativi per blocchi specifici.<\/p>\n<p>In breve, gli stili dei blocchi sono classi CSS aggiunte all&#8217;elemento contenitore di un blocco nella forma <code>.is-style-{name}<\/code>.<\/p>\n<p>Le variazioni di stile dei blocchi appaiono nel pannello Stili della barra laterale dei blocchi e permettono di selezionare uno stile per il blocco con un solo clic.<\/p>\n<figure id=\"attachment_194193\" aria-describedby=\"caption-attachment-194193\" style=\"width: 2142px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194193 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/tto-style-variations-image-block.jpg\" alt=\"Variazioni di stile predefinite di Twenty Twenty-One per il blocco Immagine\" width=\"2142\" height=\"1118\"><figcaption id=\"caption-attachment-194193\" class=\"wp-caption-text\">Variazioni di stile predefinite di Twenty Twenty-One per il blocco Immagine<\/figcaption><\/figure>\n<p>Possiamo registrare le variazioni di stile del blocco in diversi modi.<\/p>\n<p>Innanzitutto, possiamo registrare gli stili dei blocchi utilizzando la <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_block_style\/\">funzione PHP <code>register_block_style()<\/code><\/a>. Ad esempio, possiamo registrare la seguente variazione di stile nel file delle funzioni del tema:<\/p>\n<pre><code class=\"language-php\">if ( function_exists( 'register_custom_block_style' ) ) {\n\tregister_block_style(\n\t\t'core\/image',\n\t\tarray(\n\t\t\t'name'\t=&gt; 'custom',\n\t\t\t'label'\t=&gt; __( 'Custom', 'text-domain' ),\n\t\t\t'inline_style'\t=&gt; '.wp-block-image.is-style-custom img { border-radius: 12px; }',\n\t\t)\n\t);\n}\n\nadd_action( 'init', 'register_custom_block_style' ); <\/code><\/pre>\n<p><code>register_block_style()<\/code> accetta due argomenti:<\/p>\n<ul>\n<li><code>$block_name<\/code>: il nome di un tipo di blocco o di un array di tipi di blocco<\/li>\n<li><code>$style_properties<\/code>: un array contenente le propriet\u00e0 dello stile. In questo esempio, abbiamo utilizzato <code>name<\/code>, <code>label<\/code> e <code>inline_style<\/code>.<\/li>\n<\/ul>\n<p>Il codice qui sopra genera una variazione di stile del blocco con una singola propriet\u00e0 CSS. Una volta aggiunto questo codice al file <code>functions.php<\/code> del tema o del child theme, viene visualizzato un pulsante nel pannello degli stili del blocco per consentire all&#8217;utente di impostare lo stile con un solo clic.<\/p>\n<figure id=\"attachment_194186\" aria-describedby=\"caption-attachment-194186\" style=\"width: 2142px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194186 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/custom-style-variation.jpg\" alt=\"Una variazione di stile personalizzata per un blocco immagine nell'editor dei post\" width=\"2142\" height=\"908\"><figcaption id=\"caption-attachment-194186\" class=\"wp-caption-text\">Una variazione di stile personalizzata per un blocco immagine nell&#8217;editor dei post<\/figcaption><\/figure>\n<p>L&#8217;immagine che segue mostra la variazione di stile del blocco nel front-end. Il tema \u00e8 sempre Twenty Twenty-One.<\/p>\n<figure id=\"attachment_194185\" aria-describedby=\"caption-attachment-194185\" style=\"width: 2142px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194185 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/block-style-variation-php.jpg\" alt=\"Una variazione dello stile del blocco con Twenty Twenty-One\" width=\"2142\" height=\"1376\"><figcaption id=\"caption-attachment-194185\" class=\"wp-caption-text\">Una variazione dello stile del blocco con Twenty Twenty-One<\/figcaption><\/figure>\n<p>Possiamo aggiungere gli stili in linea nel codice PHP, come nell&#8217;esempio precedente, ma il codice pu\u00f2 diventare rapidamente difficile da mantenere quando gli stili diventano pi\u00f9 complessi ed elaborati. In questi casi, possiamo registrare la variazione di stile come abbiamo visto in precedenza, ma definire gli stili nel file <code>theme.json<\/code>.<\/p>\n<p>Nell&#8217;esempio che segue, creiamo una variazione di stile blu scuro per il blocco Intestazione.<\/p>\n<p>Per prima cosa, registriamo la variazione di stile nel file delle funzioni del tema:<\/p>\n<pre><code class=\"language-php\">add_action('init', 'register_block_style_labels');\n\nfunction register_block_style_labels() {\n\t$block_types = ['core\/heading'];\n\n\tif (function_exists('register_block_style')) {\n\t\tforeach ($block_types as $block_type) {\n\t\t\tregister_block_style(\n\t\t\t\t$block_type,\n\t\t\t\tarray(\n\t\t\t\t\t'name'\t=&gt; 'dark-blue-bg',\n\t\t\t\t\t'label' =&gt; __('Dark Blue', 'twentytwentyone')\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n}<\/code><\/pre>\n<p>Quindi definiamo gli stili della variazione nel file <code>theme.json<\/code>:<\/p>\n<pre><code class=\"language-json\">\"settings\": {\n\t\"styles\": {\n\t\t\"blocks\": {\n\t\t\t\"core\/heading\": {\n\t\t\t\t\"variations\": {\n\t\t\t\t\t\"dark-blue-bg\": {\n\t\t\t\t\t\t\"color\": {\n\t\t\t\t\t\t\t\"background\": \"#2860a6\",\n\t\t\t\t\t\t\t\"text\": \"#ffffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"spacing\": {\n\t\t\t\t\t\t\t\"padding\": {\n\t\t\t\t\t\t\t\t\"top\": \"0.3em\",\n\t\t\t\t\t\t\t\t\"right\": \"0.4em\",\n\t\t\t\t\t\t\t\t\"bottom\": \"0.3em\",\n\t\t\t\t\t\t\t\t\"left\": \"0.4em\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}<\/code><\/pre>\n<p>Ora gli utenti del tema possono scegliere tra due variazioni di stile per il blocco Intestazione, come mostrato nella seguente immagine.<\/p>\n<figure id=\"attachment_194190\" aria-describedby=\"caption-attachment-194190\" style=\"width: 2140px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194190 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/dark-blue-bg-style-variation.jpg\" alt=\"Una variazione di stile per il blocco Intestazione con il tema Twenty Twenty-One\" width=\"2140\" height=\"1240\"><figcaption id=\"caption-attachment-194190\" class=\"wp-caption-text\">Una variazione di stile per il blocco Intestazione con il tema Twenty Twenty-One<\/figcaption><\/figure>\n<h3>Variazioni di blocco<\/h3>\n<p>Le <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-5-4\/#block-variations\">variazioni di blocco<\/a> sono versioni alternative di qualsiasi blocco registrato. Mentre le variazioni di stile dei blocchi (o stili di blocco) sono versioni personalizzate di uno stile di blocco che gli utenti possono aggiungere ai contenuti con un solo clic, le <a href=\"https:\/\/developer.wordpress.org\/themes\/features\/block-variations\/\" target=\"_blank\" rel=\"noopener noreferrer\">variazioni di blocco<\/a> sono versioni alternative delle impostazioni di un blocco. Queste consentono agli utenti di inserire rapidamente un blocco con impostazioni preconfigurate senza dover impostare le stesse configurazioni per ogni istanza di blocco.<\/p>\n<p>La <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-variations\/\" target=\"_blank\" rel=\"noopener noreferrer\">Block Variations API<\/a> consente ai temi ibridi di registrare variazioni di blocco tramite JavaScript. Nei casi pi\u00f9 semplici, la creazione di uno script e la sua registrazione possono essere sufficienti, ma se si lavora molto con <a href=\"https:\/\/kinsta.com\/it\/blog\/blocchi-gutenberg\/\">JavaScript e con i blocchi di Gutenberg<\/a>, sarebbe meglio utilizzare strumenti di build. (<a href=\"https:\/\/developer.wordpress.org\/news\/2023\/07\/beyond-block-styles-part-1-using-the-wordpress-scripts-package-with-themes\/\" target=\"_blank\" rel=\"noopener noreferrer\">Lettura consigliata<\/a>.)<\/p>\n<p>Supponiamo di voler creare una variazione di blocco con una serie di opzioni preconfigurate in modo che la variazione possa essere inserita rapidamente nei post o nelle pagine del sito con una minima configurazione.<\/p>\n<p>Il primo passo \u00e8 creare un file JavaScript vuoto e caricarlo nell&#8217;editor. Dovremo inserirlo nel file <code>functions.php<\/code> del tema utilizzando <code>wp_enqueue_script()<\/code> e l&#8217;hook <code>enqueue_block_editor_assets<\/code>.<\/p>\n<pre><code class=\"language-php\">add_action( 'enqueue_block_editor_assets', function () {\n\twp_enqueue_script(\n\t\t'my-block-variations',\n\t\tget_theme_file_uri( 'assets\/js\/block-variations.js' ) . '?cache_bust=' . time(),\n\t\tarray( \n\t\t\t'wp-blocks', \n\t\t\t'wp-dom-ready',\n\t\t\t'wp-i18n',\n\t\t\t'wp-edit-post'\n\t\t),\n\t\twp_get_theme()-&gt;get( 'Version' ),\n\t\ttrue\n\t);\n} );<\/code><\/pre>\n<p>Nel codice qui sopra, abbiamo utilizzato <code>?cache_bust=' . time()<\/code> per aggiungere un timestamp univoco all&#8217;URL di <code>block-variations.js<\/code> (ad esempio, <code>block-variations.js?cache_bust=1698765432<\/code>). Questo \u00e8 utile durante lo sviluppo, in quanto garantisce che il browser, il server o il CDN carichino sempre l&#8217;ultima versione dello script, evitando che una versione obsoleta presente nella cache blocchi la visualizzazione delle modifiche.<\/p>\n<p>QUindi dovremo registrare la variazione di blocco nello script utilizzando la funzione <code>registerBlockVariation<\/code> fornita dalla <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/themes\/theme-support\/\" target=\"_blank\" rel=\"noopener noreferrer\">Block Variations API<\/a>.<\/p>\n<p>Ecco la firma della funzione:<\/p>\n<pre><code class=\"language-js\">const registerBlockVariation = ( blockName, variation )<\/code><\/pre>\n<ul>\n<li><code>blockName<\/code>: il nome del blocco (ad esempio, <code>core\/query<\/code>.)<\/li>\n<li><code>variation<\/code>: un oggetto che descrive una variazione del tipo di blocco.<\/li>\n<\/ul>\n<p>L&#8217;oggetto <code>variation<\/code> pu\u00f2 includere uno dei seguenti parametri:<\/p>\n<ul>\n<li><code>name<\/code>: <em>(stringa<\/em>) un identificatore univoco della variazione.<\/li>\n<li><code>title<\/code>: <em>(stringa<\/em>) un titolo della variazione leggibile dall&#8217;uomo.<\/li>\n<li><code>description<\/code>: <em>(stringa<\/em>) una descrizione dettagliata.<\/li>\n<li><code>category<\/code>: <em>(stringa<\/em>) una categoria utilizzata nelle interfacce di ricerca.<\/li>\n<li><code>keywords<\/code>: <em>(Array<\/em>) un array di termini che aiutano gli utenti a scoprire la variazione.<\/li>\n<li><code>icon<\/code>: <em>(WPIcon<\/em>) un&#8217;icona da visualizzare nell&#8217;inseritore di blocchi.<\/li>\n<li><code>isDefault<\/code>: <em>(booleano<\/em>) se la variante corrente \u00e8 quella predefinita. Il valore predefinito \u00e8 false.<\/li>\n<li><code>isActive<\/code>: <em>(Function\/Array<\/em>) una funzione o un array di attributi del blocco utilizzati per stabilire se la variante \u00e8 attiva quando il blocco viene selezionato. Senza <code>isActive<\/code>, WordPress non saprebbe come distinguere la variante da un blocco standard o da altre varianti, causando un comportamento incoerente nell&#8217;editor.<\/li>\n<li><code>attributes<\/code>: <em>(Object<\/em>) valori degli attributi che sovrascrivono i valori predefiniti del blocco.<\/li>\n<li><code>innerBlocks<\/code>: <em>(Array[]<\/em>) configurazione iniziale del blocco annidato.<\/li>\n<li><code>example<\/code>: <em>(Object<\/em>) dati strutturati per l&#8217;anteprima del blocco. Imposta a undefined per disabilitare l&#8217;anteprima.<\/li>\n<li><code>scope<\/code>: <em>(WPBlockVariationScope[]<\/em>) l&#8217;elenco degli ambiti in cui la variazione \u00e8 applicabile. Se non viene fornito, assume tutti gli ambiti disponibili. Le opzioni disponibili sono <code>block<\/code>, <code>inserter<\/code> e <code>transform<\/code>. L&#8217;impostazione predefinita \u00e8 <code>block<\/code> e <code>inserter<\/code>.<\/li>\n<\/ul>\n<p>Ora possiamo aggiungere il codice JavaScript al file <code>block-variations.js<\/code>:<\/p>\n<pre><code class=\"language-js\">wp.blocks.registerBlockVariation( 'core\/heading', { \n\tname: 'custom-centered-text', \n\ttitle: 'Custom Centered Text', \n\tdescription: 'This is a block variation with custom attributes.', \n\tattributes: { \n\t\tlevel: 2,\n\t\ttextAlign: 'center',\n\t\tplaceholder: 'Add your text here',\n\t\tstyle: {\n\t\t\tcolor: {\n\t\t\t\ttext: '#1e73be',\n\t\t\t\tbackground: '#81d742'\n\t\t\t}\n\t\t}\n\t},\n\tisActive: ( blockAttributes ) =&gt; {\n\t\treturn (\n\t\t\tblockAttributes.level === 2 &&\n\t\t\tblockAttributes.textAlign === 'center' &&\n\t\t\tblockAttributes.style?.color?.text === '#1e73be' &&\n\t\t\tblockAttributes.style?.color?.background === '#81d742'\n\t\t);\n\t},\n\ticon: 'airplane', \n\tscope: [ 'inserter' ] \n} );<\/code><\/pre>\n<p>Questo codice aggiunge un nuovo tipo di blocco con l&#8217;icona di un aeroplano al block inserter. Quando si fa clic sull&#8217;aeroplano, una nuova variazione del blocco Intestazione viene aggiunta alla pagina con le nostre impostazioni personalizzate. Abbiamo impostato il livello dell&#8217;intestazione (<code>H2<\/code>), centrato il testo, impostato un segnaposto e definito i colori del testo e dello sfondo dell&#8217;intestazione.<\/p>\n<figure id=\"attachment_194382\" aria-describedby=\"caption-attachment-194382\" style=\"width: 2604px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194382 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/example-block-variation.jpg\" alt=\"Un esempio di variazione di blocco con il tema ibrido Twenty Twenty-One\" width=\"2604\" height=\"1012\"><figcaption id=\"caption-attachment-194382\" class=\"wp-caption-text\">Un esempio di variazione di blocco con il tema ibrido Twenty Twenty-One<\/figcaption><\/figure>\n<p>Nota: affinch\u00e9 questo codice funzioni come previsto, bisogna assicurarsi che il tema ibrido supporti le funzioni dell&#8217;editor come <code>'editor-color-palette'<\/code>, <code>'editor-styles'<\/code> e altre. Per un elenco completo dei supporti, si veda la documentazione della <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/themes\/theme-support\/\" target=\"_blank\" rel=\"noopener noreferrer\">Block Variations API<\/a>.<\/p>\n<h3>Block pattern<\/h3>\n<p>I block pattern sono gruppi precostituiti di blocchi che possiamo aggiungere ai contenuti e personalizzare utilizzando l&#8217;interfaccia dell&#8217;editor di blocchi.<\/p>\n<p>I temi a blocchi di solito forniscono un numero variabile di block pattern che possiamo aggiungere ai contenuti direttamente dal block inserter. I temi ibridi possono aggiungere il supporto dei block pattern in modo che gli utenti dei temi classici possano beneficiarne.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Esistono diversi modi per aggiungere block pattern a un tema WordPress e li abbiamo trattati tutti nella nostra <a href=\"https:\/\/kinsta.com\/it\/blog\/block-pattern-wordpress\/\">guida approfondita sui pattern di WordPress<\/a>.<\/p>\n<\/aside>\n\n<p>Possiamo creare una cartella <code>patterns<\/code> nella root del tema e inserire i block pattern, oppure possiamo registrarli nei file <code>functions.php<\/code> o altro file <code>.php<\/code> del tema.<\/p>\n<p>Per mantenere l&#8217;ordine, possiamo creare un file <code>inc\/block-patterns.php<\/code> e inserirlo nella cartella <code>function.php<\/code> del tema con il seguente codice:<\/p>\n<pre><code class=\"language-php\">require get_template_directory() . '\/inc\/block-patterns.php';<\/code><\/pre>\n<p>Una volta fatto, possiamo creare il block pattern nell&#8217;editor, copiare il codice e registrare il block pattern e la categoria di pattern in <code>inc\/block-patterns.php<\/code> utilizzando le funzioni <code>register_block_pattern_category<\/code> e <code>register_block_pattern()<\/code>:<\/p>\n<pre><code class=\"language-php\">if ( function_exists( 'register_block_pattern_category' ) ) {\n\tfunction my_hybrid_theme_register_block_pattern_category() {\n\t\tregister_block_pattern_category(\n\t\t\t'myhybridtheme',\n\t\t\tarray( 'label' =&gt; esc_html__( 'My Hybrid Theme', 'myhybridtheme' ) )\n\t\t);\n\t}\n\tadd_action( 'init', 'my_hybrid_theme_register_block_pattern_category' );\n}\n\nif ( function_exists( 'register_block_pattern' ) ) {\n\tfunction my_hybrid_theme_register_block_pattern() {\n\n\t\t\/\/ My pattern\n\t\tregister_block_pattern(\n\t\t\t'myhybridtheme\/huge-heading',\n\t\t\tarray(\n\t\t\t\t'title'\t\t\t=&gt; esc_html__( 'Huge heading', 'myhybridtheme' ),\n\t\t\t\t'categories'\t=&gt; array( 'myhybridtheme' ),\n\t\t\t\t'viewportWidth'\t=&gt; 1440,\n\t\t\t\t'blockTypes'\t=&gt; array( 'core\/heading' ),\n\t\t\t\t'content'\t\t=&gt; '&lt;!-- wp:heading {\"textAlign\":\"center\",\"align\":\"wide\",\"fontSize\":\"gigantic\",\"style\":{\"typography\":{\"lineHeight\":\"1.2\"}}} --&gt;&lt;h2 class=\"alignwide has-text-align-center has-gigantic-font-size\" style=\"line-height:1.2\"&gt;' . esc_html__( 'A simple Heading in a pattern', 'myhybridtheme' ) . '&lt;\/h2&gt;&lt;!-- \/wp:heading --&gt;',\n\t\t\t)\n\t\t);\n\t}\n\tadd_action( 'init', 'my_hybrid_theme_register_block_pattern' );\n}<\/code><\/pre>\n<p>Possiamo vedere l&#8217;anteprima del block pattern nella bacheca di WordPress in <strong>Aspetto<\/strong> &gt; <strong>Design<\/strong> &gt; <strong>Modelli<\/strong> &gt; <strong>Il mio tema ibrido<\/strong> e utilizzarlo nei contenuti.<\/p>\n<figure id=\"attachment_194410\" aria-describedby=\"caption-attachment-194410\" style=\"width: 2042px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194410 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/block-patterns-in-hybrid-themes.jpg\" alt=\"Pattern nei temi ibridi\" width=\"2042\" height=\"1222\"><figcaption id=\"caption-attachment-194410\" class=\"wp-caption-text\">Pattern nei temi ibridi<\/figcaption><\/figure>\n<p>Possiamo anche duplicare ed esportare il block pattern e importarlo in altri siti WordPress.<\/p>\n<figure id=\"attachment_194409\" aria-describedby=\"caption-attachment-194409\" style=\"width: 2468px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194409 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/adding-pattern.jpg\" alt=\"Per aggiungere un pattern bastano pochi clic\" width=\"2468\" height=\"1248\"><figcaption id=\"caption-attachment-194409\" class=\"wp-caption-text\">Per aggiungere un pattern bastano pochi clic<\/figcaption><\/figure>\n<h3>Parti di template<\/h3>\n<p>Sebbene i temi ibridi utilizzino i classici template e parti di template PHP, possiamo aggiungere <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/themes\/theme-support\/#block-based-template-parts\" target=\"_blank\" rel=\"noopener noreferrer\">il supporto delle parti di template a blocchi<\/a> nel file <code>functions.php<\/code> del tema:<\/p>\n<pre><code class=\"language-php\">function my_hybrid_theme_setup() {\n\tadd_theme_support( 'block-template-parts' );\n}\nadd_action( 'after_setup_theme', 'my_hybrid_theme_setup' );<\/code><\/pre>\n<p>Una volta aggiunto il supporto delle parti di template a blocchi, possiamo includerle in qualsiasi template file del tema ibrido utilizzando la <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/block_template_part\/\" target=\"_blank\" rel=\"noopener noreferrer\">funzione <code>block_template_part<\/code><\/a>.<\/p>\n<p>Vediamo un esempio pratico. Iniziamo creando una cartella <code>\/parts<\/code> nella root del tema e caricandovi un file <code>footer.html<\/code>. Per questo esempio, abbiamo copiato il footer del tema Twenty Twenty-Five:<\/p>\n<pre><code class=\"language-html\">&lt;!-- wp:group {\"align\":\"full\",\"className\":\"is-style-section-5\",\"style\":{\"spacing\":{\"padding\":{\"top\":\"var:preset|spacing|60\",\"bottom\":\"var:preset|spacing|60\"}}},\"layout\":{\"type\":\"constrained\"}} --&gt;\n&lt;div class=\"wp-block-group alignfull is-style-section-5\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\"&gt;\n\t&lt;!-- wp:group {\"style\":{\"spacing\":{\"blockGap\":\"var:preset|spacing|10\"}},\"layout\":{\"type\":\"flex\",\"orientation\":\"vertical\",\"justifyContent\":\"stretch\"}} --&gt;\n\t&lt;div class=\"wp-block-group\"&gt;\n\t\t&lt;!-- wp:site-title {\"level\":2,\"textAlign\":\"center\",\"style\":{\"typography\":{\"textTransform\":\"uppercase\",\"fontStyle\":\"normal\",\"fontWeight\":\"400\"}},\"fontSize\":\"x-large\"} \/--&gt;\n\t\t&lt;!-- wp:navigation {\"overlayMenu\":\"never\",\"style\":{\"typography\":{\"textTransform\":\"uppercase\",\"fontStyle\":\"normal\",\"fontWeight\":\"400\"},\"spacing\":{\"blockGap\":\"var:preset|spacing|20\"}},\"fontSize\":\"x-large\",\"layout\":{\"type\":\"flex\",\"justifyContent\":\"center\"},\"ariaLabel\":\"Social media\"} --&gt;\n\t\t&lt;!-- wp:navigation-link {\"label\":\"Facebook\",\"url\":\"#\"} \/--&gt;\n\t\t&lt;!-- wp:navigation-link {\"label\":\"Instagram\",\"url\":\"#\"} \/--&gt;\n\t\t&lt;!-- wp:navigation-link {\"label\":\"X\",\"url\":\"#\"} \/--&gt;\n\t\t&lt;!-- \/wp:navigation --&gt;\n\t&lt;\/div&gt;\n\t&lt;!-- \/wp:group --&gt;\n\t&lt;!-- wp:spacer {\"height\":\"var:preset|spacing|30\"} --&gt;\n\t&lt;div style=\"height:var(--wp--preset--spacing--30)\" aria-hidden=\"true\" class=\"wp-block-spacer\"&gt;&lt;\/div&gt;\n\t&lt;!-- \/wp:spacer --&gt;\n\t&lt;!-- wp:paragraph {\"align\":\"center\",\"fontSize\":\"small\"} --&gt;\n\t&lt;p class=\"has-text-align-center has-small-font-size\"&gt;\n\t\tDesigned with &lt;a href=\"https:\/\/wordpress.org\" rel=\"nofollow\"&gt;WordPress&lt;\/a&gt;\n\t&lt;\/p&gt;\n\t&lt;!-- \/wp:paragraph --&gt;\n&lt;\/div&gt;\n&lt;!-- \/wp:group --&gt;<\/code><\/pre>\n<p>Ora possiamo includere questa parte del template in un template classico con la funzione <code>block_template_part<\/code>:<\/p>\n<pre><code class=\"language-php\">&lt;?php block_template_part( 'footer' ); ?&gt; <\/code><\/pre>\n<p>Possiamo, ad esempio, includerlo nel file <code>footer.php<\/code> di Twenty Twenty-One. L&#8217;immagine che segue mostra il risultato sullo schermo.<\/p>\n<figure id=\"attachment_194501\" aria-describedby=\"caption-attachment-194501\" style=\"width: 1808px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194501 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/block-template-part.jpg\" alt=\"Una parte di template a blocchi in un tema ibrido\" width=\"1808\" height=\"1252\"><figcaption id=\"caption-attachment-194501\" class=\"wp-caption-text\">Una parte di template a blocchi in un tema ibrido<\/figcaption><\/figure>\n<p>Possiamo anche includere parti di template in un template a blocchi utilizzando il seguente codice:<\/p>\n<p><code class=\"language-html\">&lt;!-- wp:template-part {\"slug\":\"footer\"} \/--&gt;<\/code><\/p>\n<p>Possiamo, ad esempio, copiare il codice del template <code>page.html<\/code> da Twenty Twenty-Five:<\/p>\n<pre><code class=\"language-html\">&lt;!-- wp:template-part {\"slug\":\"header\"} \/--&gt;\n\n&lt;!-- wp:group {\"tagName\":\"main\",\"style\":{\"spacing\":{\"margin\":{\"top\":\"var:preset|spacing|60\"}}},\"layout\":{\"type\":\"constrained\"}} --&gt;\n&lt;main class=\"wp-block-group\" style=\"margin-top:var(--wp--preset--spacing--60)\"&gt;\n\t&lt;!-- wp:group {\"align\":\"full\",\"style\":{\"spacing\":{\"padding\":{\"top\":\"var:preset|spacing|60\",\"bottom\":\"var:preset|spacing|60\"}}},\"layout\":{\"type\":\"constrained\"}} --&gt;\n\t&lt;div class=\"wp-block-group alignfull\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\"&gt;\n\t\t&lt;!-- wp:post-featured-image {\"style\":{\"spacing\":{\"margin\":{\"bottom\":\"var:preset|spacing|60\"}}}} \/--&gt;\n\t\t&lt;!-- wp:post-title {\"level\":1} \/--&gt;\n\t\t&lt;!-- wp:post-content {\"align\":\"full\",\"layout\":{\"type\":\"constrained\"}} \/--&gt;\n\t&lt;\/div&gt;\n\t&lt;!-- \/wp:group --&gt;\n&lt;\/main&gt;\n&lt;!-- \/wp:group --&gt;\n\n&lt;!-- wp:template-part {\"slug\":\"footer\"} \/--&gt;<\/code><\/pre>\n<p>Possiamo salvare questo template nella cartella <code>\/templates<\/code> e chiamarlo <code>page.html<\/code>. WordPress lo caricher\u00e0 automaticamente secondo la gerarchia dei template. Questo template includer\u00e0 automaticamente le parti dei template <code>header.html<\/code> e <code>footer.html<\/code> dalla cartella <code>\/parts<\/code> del tema ibrido.<\/p>\n<h2>Quando scegliere i temi ibridi rispetto ai temi a blocchi<\/h2>\n<p>Un tema ibrido pu\u00f2 essere la soluzione migliore nei seguenti casi:<\/p>\n<ul>\n<li><strong>Quando vogliamo utilizzare alcune caratteristiche moderne dei temi a blocchi senza ristrutturare completamente un sito esistente.<\/strong><br \/>\nI temi ibridi permettono di sfruttare le funzionalit\u00e0 dei blocchi come l&#8217;editor di blocchi, gli stili globali e i block pattern. I temi ibridi supportano anche le API dell&#8217;editor di blocchi come la <a href=\"https:\/\/kinsta.com\/it\/blog\/api-block-bindings\/\">Block Bindings API<\/a>, l&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-6-5\/#interactivity-api\">Interactivity API<\/a> e l&#8217;HTML API. Questo significa che possiamo creare siti moderni senza dover fare i conti con una complessa migrazione.<\/li>\n<li><strong>Quando vogliamo mantenere la compatibilit\u00e0 con i plugin o i widget classici ma non vogliamo rinunciare ad alcune potenti funzioni dei temi a blocchi.<\/strong><br \/>\nLe vecchie versioni di alcuni plugin possono avere problemi di compatibilit\u00e0 con i temi a blocchi, come ad esempio le vecchie versioni di Contact Form 7, NextGEN Gallery, Custom Post Type UI e altri plugin. Sebbene sia consigliabile <a href=\"https:\/\/kinsta.com\/it\/blog\/aggiornamenti-automatici-di-kinsta\/\">aggiornare i plugin<\/a> alle versioni pi\u00f9 recenti per evitare vulnerabilit\u00e0, alcuni siti WordPress potrebbero avere installate versioni precedenti di un plugin. Se non siamo ancora pronti ad aggiornare tutti i plugin, potremmo prendere in considerazione un tema ibrido.<\/li>\n<li><strong>Quando cerchiamo di trovare il miglior compromesso tra design e prestazioni.<\/strong><br \/>\nAlcuni noti temi ibridi sono ottimizzati per essere veloci e possono fornire prestazioni significativamente migliori rispetto ai temi a blocchi. Tuttavia, supportano l&#8217;approccio no-code\/low-code dei temi a blocchi, offrendo un&#8217;esperienza di design migliore rispetto ai temi classici. I temi ibridi ottimizzati per le prestazioni, come <a href=\"https:\/\/kinsta.com\/it\/blog\/temi-wordpress-veloci\/#2-neve\">Neve<\/a> o Kadence, permettono di creare siti web dall&#8217;aspetto moderno senza compromettere le prestazioni.<\/li>\n<li><strong>Quando vogliamo passare senza problemi al FSE.<\/strong><br \/>\nA volte il passaggio dalla vecchia alla nuova logica di design pu\u00f2 richiedere tempo, soprattutto quando si lavora in team su siti di grandi dimensioni e la curva di apprendimento \u00e8 un problema. Un tema ibrido permette al team di sperimentare le funzionalit\u00e0 dei blocchi mantenendo gli strumenti di design pi\u00f9 familiari, come il Customizer e i classici template PHP.<\/li>\n<\/ul>\n<p>Ma ci sono anche situazioni in cui i temi ibridi non sono la soluzione migliore. Ad esempio:<\/p>\n<ul>\n<li><strong>Quando gli strumenti di progettazione del sito hanno la precedenza sulle prestazioni generali.<\/strong><br \/>\nQuando vogliamo utilizzare alcune funzioni specifiche del Full Site Editing, come l&#8217;Editor del sito, la modifica completa dei template tramite blocchi e l&#8217;interfaccia degli Stili globali, un tema ibrido non \u00e8 una soluzione praticabile perch\u00e9 queste funzionalit\u00e0 non sono supportate o lo sono solo parzialmente nei temi ibridi.<\/li>\n<li><strong>Con i siti WordPress headless basati sulla REST API di WordPress.<\/strong><br \/>\nIn questo scenario, i temi a blocchi sono da preferire perch\u00e9 i dati dei blocchi sono facilmente esposti tramite l&#8217;API REST (vedi, ad esempio, l&#8217;<a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/blocks\/#list-editor-blocks\">endpoint <code>\/wp\/v2\/blocks<\/code><\/a>) o WPGraphQL, laddove i temi ibridi potrebbero aggiungere complessit\u00e0.<\/li>\n<li><strong>Quando si preferisce un approccio &#8220;no code&#8221; alla costruzione di un sito.<\/strong><br \/>\nI temi ibridi non supportano la creazione o la modifica di template tramite l&#8217;editor del sito. Sebbene sia possibile aggiungere il supporto delle parti dei template, al momento questo supporto \u00e8 limitato e la gestione dei template \u00e8 basata principalmente su PHP.<\/li>\n<\/ul>\n<p>In conclusione, non esiste una regola ferrea per scegliere tra i temi ibridi e quelli a blocchi. Dipende da molti fattori, come le competenze del team, il tipo di sito che stiamo sviluppando, le prestazioni richieste, la retrocompatibilit\u00e0 e molto altro.<\/p>\n<h2>Riepilogo<\/h2>\n<p>Il Full Site Editing e i temi a blocchi hanno cambiato radicalmente il modo di costruire i siti web WordPress. La filosofia dei blocchi offre agli utenti maggiori possibilit\u00e0 di creare layout complessi e di mettere a punto ogni aspetto di un sito web.<\/p>\n<p>Ma se non siamo ancora pronti a fare il salto perch\u00e9 il sito potrebbe non essere completamente compatibile con i temi a blocchi o perch\u00e9 richiede specifiche caratteristiche di un tema classico, i temi ibridi sono una soluzione che permette di avere il meglio di entrambi i mondi, consentendoci di utilizzare alcune potenti caratteristiche dei temi a blocchi pur mantenendo la compatibilit\u00e0 con le caratteristiche dei plugin e dei temi classici.<\/p>\n<p>Per non parlare delle prestazioni. I temi a blocchi possono richiedere molte risorse a causa del rendering dei blocchi e dell&#8217;uso di JavaScript. I temi ibridi ottimizzati per le prestazioni possono rendere il sito pi\u00f9 leggero e performante riducendo il carico di JavaScript necessario.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress 5.9 ha introdotto un nuovo modo di costruire siti web: il Full Site Editing. \u00c8 stato un punto di svolta per gli utenti di WordPress &#8230;<\/p>\n","protected":false},"author":36,"featured_media":81167,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[25957],"class_list":["post-81166","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-temi-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>I Temi Ibridi di WordPress: un&#039;analisi per utenti e sviluppatori<\/title>\n<meta name=\"description\" content=\"Analisi approfondita dei temi ibridi di WordPress: caratteristiche, suggerimenti per la personalizzazione, approfondimenti per sviluppatori e quando preferirli ai temi a blocchi.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"I Temi Ibridi di WordPress: un&#039;analisi per utenti e sviluppatori\" \/>\n<meta property=\"og:description\" content=\"Analisi approfondita dei temi ibridi di WordPress: caratteristiche, suggerimenti per la personalizzazione, approfondimenti per sviluppatori e quando preferirli ai temi a blocchi.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-12T07:13:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-16T07:13:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1470\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Analisi approfondita dei temi ibridi di WordPress: caratteristiche, suggerimenti per la personalizzazione, approfondimenti per sviluppatori e quando preferirli ai temi a blocchi.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"26 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"I Temi Ibridi di WordPress: un&#8217;analisi per utenti e sviluppatori\",\"datePublished\":\"2025-06-12T07:13:03+00:00\",\"dateModified\":\"2025-06-16T07:13:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/\"},\"wordCount\":3995,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png\",\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/\",\"name\":\"I Temi Ibridi di WordPress: un'analisi per utenti e sviluppatori\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png\",\"datePublished\":\"2025-06-12T07:13:03+00:00\",\"dateModified\":\"2025-06-16T07:13:53+00:00\",\"description\":\"Analisi approfondita dei temi ibridi di WordPress: caratteristiche, suggerimenti per la personalizzazione, approfondimenti per sviluppatori e quando preferirli ai temi a blocchi.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Temi WordPress\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/temi-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"I Temi Ibridi di WordPress: un&#8217;analisi per utenti e sviluppatori\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"caption\":\"Carlo Daniele\"},\"description\":\"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.\",\"sameAs\":[\"https:\/\/frammentidicodice.com\/\",\"https:\/\/x.com\/carlodaniele\"],\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"I Temi Ibridi di WordPress: un'analisi per utenti e sviluppatori","description":"Analisi approfondita dei temi ibridi di WordPress: caratteristiche, suggerimenti per la personalizzazione, approfondimenti per sviluppatori e quando preferirli ai temi a blocchi.","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:\/\/kinsta.com\/it\/blog\/temi-ibridi\/","og_locale":"it_IT","og_type":"article","og_title":"I Temi Ibridi di WordPress: un'analisi per utenti e sviluppatori","og_description":"Analisi approfondita dei temi ibridi di WordPress: caratteristiche, suggerimenti per la personalizzazione, approfondimenti per sviluppatori e quando preferirli ai temi a blocchi.","og_url":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2025-06-12T07:13:03+00:00","article_modified_time":"2025-06-16T07:13:53+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"Analisi approfondita dei temi ibridi di WordPress: caratteristiche, suggerimenti per la personalizzazione, approfondimenti per sviluppatori e quando preferirli ai temi a blocchi.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png","twitter_creator":"@carlodaniele","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Carlo Daniele","Tempo di lettura stimato":"26 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"I Temi Ibridi di WordPress: un&#8217;analisi per utenti e sviluppatori","datePublished":"2025-06-12T07:13:03+00:00","dateModified":"2025-06-16T07:13:53+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/"},"wordCount":3995,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png","inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/","url":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/","name":"I Temi Ibridi di WordPress: un'analisi per utenti e sviluppatori","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png","datePublished":"2025-06-12T07:13:03+00:00","dateModified":"2025-06-16T07:13:53+00:00","description":"Analisi approfondita dei temi ibridi di WordPress: caratteristiche, suggerimenti per la personalizzazione, approfondimenti per sviluppatori e quando preferirli ai temi a blocchi.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2025\/06\/hybrid-themes-what-are-they.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/temi-ibridi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Temi WordPress","item":"https:\/\/kinsta.com\/it\/argomenti\/temi-wordpress\/"},{"@type":"ListItem","position":3,"name":"I Temi Ibridi di WordPress: un&#8217;analisi per utenti e sviluppatori"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","caption":"Carlo Daniele"},"description":"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.","sameAs":["https:\/\/frammentidicodice.com\/","https:\/\/x.com\/carlodaniele"],"url":"https:\/\/kinsta.com\/it\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/81166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=81166"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/81166\/revisions"}],"predecessor-version":[{"id":81182,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/81166\/revisions\/81182"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/81166\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/81166\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/81166\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/81166\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/81166\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/81166\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/81166\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/81166\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/81166\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/81167"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=81166"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=81166"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=81166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}