Progettazione di temi figlio WordPress basati su blocchi con un singolo file JSON
Pubblicato: 2021-10-26Dal momento in cui ho aperto il mio primo negozio di temi nel 2008 fino ai giorni nostri come persona che si limitava ad armeggiare, il mio piano è sempre stato quello di costruire un unico tema sullo stampo del CSS Zen Garden. Questo è stato un progetto lanciato da Dave Shea all'inizio degli anni 2000 per mostrare come i designer potevano manipolare un sito solo attraverso i CSS. L'HTML rimarrebbe lo stesso, ma il design potrebbe essere qualsiasi cosa.
Ho raggiunto questo obiettivo più volte con diversi progetti. Tecnicamente, tutto ciò di cui avevo bisogno era un markup dal punto di vista architettonico in un tema WordPress e CSS personalizzato in un tema figlio.
Il concetto era semplice, ma nel tempo la mia visione è cambiata. Volevo creare qualcosa che rendesse ancora più semplice la progettazione di questi tipi di temi per bambini. Pertanto, ho creato sistemi personalizzati per aggirare la mancanza di strumenti di WordPress nell'ambito della progettazione dei temi. Non per vantarmi troppo, ma mi sentivo come se avessi creato dei metodi pratici. Hanno permesso ai progettisti di temi figlio di inserire valori nei file di configurazione, come nomi di famiglie di caratteri e codici colore. La maggior parte di questi potrebbe anche essere sovrascritta dagli utenti finali tramite il personalizzatore.
Nel 2018 stavo già lavorando sodo su quella che sarebbe stata la mia opera magnum, il miglior tema WordPress che avessi mai creato. Avevo anche programmato che fosse l'ultimo. Era da un po' che pensavo di uscire dal gioco. Ma questo era un progetto che dovevo portare a termine.
Quindi, il nuovo editor di blocchi ha fatto esplodere tutto. Ci avevo lavorato per mesi prima del lancio, ma sapevo che lo sviluppo del tema non sarebbe mai stato lo stesso. Il progetto Gutenberg continuerebbe a maturare e rimodellare il futuro di WordPress.
Alla fine ho lanciato il mio tema. È stato uno dei primi prodotti commerciali a supportare il nuovo sistema a blocchi. Tuttavia, ero anche sgonfiato.
Erano i primi giorni dell'editor di blocchi. Nessuno sapeva davvero cosa avremmo visto tra tre o più anni, ma se si prestasse anche solo un minimo di attenzione, si poteva vedere che il tema si sarebbe evoluto in qualcosa di molto diverso da quello che era in quel momento. Ho passato più di un anno a costruire un sistema di temi che sarebbe diventato irrilevante in breve tempo - concesso, pensavo che saremmo arrivati a questa destinazione molto prima.
WordPress 5.9 spedirà i sottocomponenti finali di Full Site Editing. Ciò includerà il supporto per i temi a blocchi nascosti. Gli utenti che li installano possono personalizzarli tramite l'editor del sito e l'interfaccia degli stili globali.
Quello che mi eccita di più è ancora la cosa che mi svegliava ogni mattina 13 anni fa: i temi dei bambini.
I temi figlio di blocco hanno funzionato parzialmente nel plug-in Gutenberg per mesi. Tuttavia, la funzione che non vedevo l'ora di più non era pronta fino a una settimana fa. Una nuova patch consente a un tema figlio di sovrascrivere i singoli valori del file theme.json del genitore. In sostanza, i due file vengono uniti, con il bambino che ha la precedenza.
Perché ero così entusiasta di questa funzione? Perché era lo stesso sistema che avevo costruito negli anni passati, ma migliore.
Dopo aver visto questa terra nella versione di sviluppo di Gutenberg, la prima cosa che ho fatto è stata caricare un tema personalizzato con cui mi sono dilettato. È un progetto che ho costruito per divertimento e per mia stessa edificazione.

Quindi, ho creato un nuovo progetto nel mio editor di codice. Ho aggiunto il file style.css richiesto e ho inserito i campi di intestazione appropriati. Non ne avrei bisogno oltre. Il design del tema di mio figlio farebbe affidamento su un'altra funzionalità del tutto.

Ho aggiunto un theme.json al livello principale del tema figlio e ho iniziato a divertirmi più di quanto non facessi con i temi da molto tempo.
Ho scelto un paio di colori autunnali e un divertente carattere di intestazione. In pochi minuti, ho avuto una nuova mano di vernice spruzzata sulla mia installazione di prova. Il design non era rivoluzionario o qualcosa del genere. Sono rimasto semplicemente stupito di quanto sia stato facile trasformare il mio design inserendo alcuni valori.

Questo è il tipo di tema per bambini che ho sempre desiderato. Voglio il potere di cambiare gli elementi di design del mio tema per varie stagioni e festività. E voglio essere in grado di condividere questi temi infantili con gli altri.
Come ho detto, avevo già creato tali metodi di tematica figlio (ho usato PHP invece di JSON). Tuttavia, questo è molto più potente perché si basa sul sistema a blocchi standard e non su qualcosa di personalizzato che solo una manciata di persone utilizzerebbe.
Alcuni di voi potrebbero chiedersi perché non ho apportato queste modifiche tramite l'editor del sito invece di creare un tema figlio. Rich Tabor ha posto, in sostanza, la stessa domanda su Twitter all'inizio di oggi. "Se un tema è costituito da JSON e modelli di blocchi che possono essere entrambi modificati tramite Stili globali, a cosa servono i temi figlio?"
Diciamo che ho installato un tema a blocchi e ho apportato alcune modifiche al colore. Ora, fai finta di voler mescolare questo quando arriva il Natale: aggiungi alcuni colori e trova un carattere festivo per le vacanze. Quando apporterò queste modifiche, il mio vecchio design non sarà più presente al termine della stagione perché le personalizzazioni dell'utente vengono archiviate in base al tema attivo. Potrei, ovviamente, prendere nota di tutte le mie vecchie impostazioni e modificarle tutte in un secondo momento. Tuttavia, farlo tramite un tema figlio significa che posso semplicemente cambiare tema in qualsiasi momento. Le mie vecchie impostazioni rimarrebbero intatte.
Forse questo è davvero un caso limite. Chi sta apportando modifiche stagionali al proprio design in questi giorni, giusto?
La parte interessante è che posso condividere con altri temi figlio creati con un singolo file JSON.
I temi per bambini sono stati una mia passione da quando la funzione è arrivata in WordPress. Per alcuni aspetti, non è cambiato molto. I temi possono ancora sovrascrivere i modelli dal genitore. Possono continuare ad aggiungere CSS personalizzati se lo desiderano. Ma ora possono configurare qualsiasi parte del progetto da un unico file standardizzato. Questo è qualcosa per cui vale la pena rimettere il cappello del mio sviluppatore e costruire un altro tema.
Vedo anche un futuro senza temi per bambini che ha ancora gli stessi vantaggi della condivisione di elementi di design.
La directory del modello di blocco fornisce già layout che dovrebbero funzionare con qualsiasi tema WordPress ben costruito. Tuttavia, ci sono altri componenti del design che potremmo smantellare in futuro.
Immagino un futuro in cui WordPress potrebbe avere tavolozze di colori installabili come quelle offerte da Color Lovers. Basta sfogliare una directory, installare e modificare la combinazione di colori senza trovare un nuovo tema. Qualcosa di simile al recente plug-in Adrian potrebbe servire allo stesso scopo per i caratteri. Queste sono cose che la comunità potrebbe voler considerare lungo la strada. Nessuna idea dovrebbe essere fuori discussione a questo punto.
Per ora, sono felice di avere a mia disposizione tutta la potenza dei temi per bambini. Il cambiamento dovrebbe arrivare in Gutenberg 11.8 questa settimana e WordPress 5.9 entro la fine dell'anno.
