1. Introduzione
Uno starter kit non è un tema WordPress eseguibile. È un pacchetto di progetto che SimplyCod Studio importa, con pagine, media e impostazioni globali descritti in JSON.
Questa separazione rende il kit indipendente dal tema WordPress attivo e permette al plugin di conservarne una copia interna. Le pagine eliminate possono quindi essere ricreate dalla copia memorizzata senza richiedere nuovamente lo ZIP originale.
Installazione rapida, contenuti modificabili e nessuna dipendenza esterna obbligatoria.
Identificatori stabili, versionamento e kit riutilizzabili per più clienti.
Formato controllabile, privo di codice eseguibile e adatto alla distribuzione.
2. Avvio rapido
- Crea una cartella di lavoro, per esempio
studio-architettura. - Aggiungi nella radice il file
simplycod-kit.json. - Crea le cartelle
pagesemedia. - Scrivi almeno una pagina JSON con
version: 2. - Inserisci le immagini locali e richiamale tramite token.
- Definisci design system, intestazione, footer e menu nel manifest.
- Comprimi il contenuto della cartella, senza una cartella contenitore aggiuntiva.
- Carica lo ZIP da SimplyCod Studio → Aggiungi nuovo e verifica tutte le pagine.
Kit installabile con home, vetrina, contatti, JPG, PNG trasparente e modulo.
Scarica lo ZIP di esempioDocumentazione tecnica e schema JSON inclusi nel progetto.
Apri la guida SDKFile leggibili e modificabili prima del confezionamento.
Apri i sorgenti3. Struttura dello ZIP
studio-architettura.zip
├── simplycod-kit.json
├── pages/
│ ├── home.json
│ ├── progetti.json
│ └── contatti.json
└── media/
├── hero.jpg
├── progetto-01.jpg
└── marchio.pngNello ZIP installabile sono ammessi il manifest, i file pagina JSON e i media supportati. Tieni documentazione, file sorgente, PSD, script e appunti fuori dallo ZIP distribuibile.
simplycod-kit.json. Una struttura come studio-architettura/simplycod-kit.json non è valida.| Limite | Valore | Motivo |
|---|---|---|
| Dimensione ZIP | 32 MB | Riduce rischi e tempi di upload. |
| Contenuto estratto | 30 MB | Previene pacchetti compressi anomali. |
| File complessivi | 150 | Mantiene il kit gestibile. |
| Singolo file | 8 MB | Favorisce media ottimizzati. |
| Pagine | Da 1 a 20 | Definisce l'ambito di uno starter kit. |
4. Il manifest simplycod-kit.json
Il manifest identifica il prodotto, elenca le pagine e contiene la configurazione globale da applicare durante l'importazione.
{
"format": "simplycod-starter-kit",
"schema_version": 1,
"id": "studio-architettura",
"name": "Studio Architettura",
"version": "1.0.0",
"description": "Starter kit per studi professionali.",
"author": "Nome autore",
"homepage": "https://example.com",
"min_plugin_version": "0.22.0",
"home": "home",
"pages": [
{ "key": "home", "title": "Home", "slug": "home", "layout": "pages/home.json", "status": "publish" },
{ "key": "projects", "title": "Progetti", "slug": "progetti", "layout": "pages/progetti.json", "status": "publish" },
{ "key": "contact", "title": "Contatti", "slug": "contatti", "layout": "pages/contatti.json", "status": "publish" }
],
"media": {
"hero": "media/hero.jpg",
"brand": "media/marchio.png"
},
"menu": {
"name": "Navigazione principale",
"items": ["home", "projects", "contact"]
},
"design": {
"primary_color": "#176b5b",
"secondary_color": "#d85b43",
"text_color": "#182321",
"surface_color": "#ffffff",
"font_family": "system",
"content_width": 1180,
"button_radius": 4
}
}| Campo | Regola |
|---|---|
id | Identificatore permanente, minuscolo e con trattini. Non cambiarlo nelle versioni successive. |
version | Versione semantica, ad esempio 1.2.0. |
format | Deve essere esattamente simplycod-starter-kit. |
pages[].key | Chiave univoca usata da menu e token. |
home | Contiene la chiave della pagina da impostare come home; quella pagina deve essere pubblicata. |
media | Mappa tra nomi logici e file locali. |
5. Pagine e layout
Ogni file pagina descrive il canvas dell'editor. Usa version: 2 e un array sections. La pagina resta modificabile visualmente dopo l'importazione.
{
"version": 2,
"sections": [
{
"background": "#10231f",
"text_color": "#ffffff",
"padding": 96,
"background_image": "{{media:hero}}",
"background_image_id": "{{media_id:hero}}",
"background_size": "cover",
"background_position": "center center",
"background_position_x": 50,
"background_position_y": 50,
"background_attachment": "scroll",
"overlay_color": "#10231f",
"overlay_opacity": 58,
"columns": [
{
"width": 100,
"blocks": [
{ "type": "heading", "content": "Spazi pensati per vivere", "level": "h1" },
{ "type": "text", "content": "Progettiamo luoghi essenziali, luminosi e durevoli." },
{ "type": "button", "label": "Scopri i progetti", "url": "{{page:projects}}", "style": "primary" }
]
}
]
}
]
}blocks. Non racchiuderle in oggetti settings o components.6. Sezioni e colonne
Una sezione contiene impostazioni visive e da una a più colonne. La somma delle larghezze dovrebbe essere 100. Su schermi piccoli l'editor gestisce l'impilamento delle colonne.
{
"background": "#f2f6f4",
"text_color": "#182321",
"padding": 72,
"columns": [
{
"width": 45,
"blocks": [
{ "type": "image", "url": "{{media:portrait}}", "image_id": "{{media_id:portrait}}", "content": "Ritratto del professionista" }
]
},
{
"width": 55,
"blocks": [
{ "type": "heading", "content": "Un progetto su misura", "level": "h2" },
{ "type": "text", "content": "Dall'idea alla consegna, seguiamo ogni dettaglio." }
]
}
]
}Sfondi
Per immagini proporzionalmente diverse dall'area usa cover e scegli il punto focale con background_position. Usa contain quando l'immagine deve essere interamente visibile. background_attachment può essere scroll o fixed.
7. Componenti disponibili
| Gruppo | Tipi | Uso |
|---|---|---|
| Base | heading, text, image, video, youtube, button, divider, spacer, map, icon | Contenuti fondamentali. |
| Generale | tabs, accordion, image_box, icon_box, image_carousel, gallery, icon_list | Strutture ricche e raccolte. |
| Dati e fiducia | counter, progress, testimonial, social_icons | Indicatori, recensioni e social. |
| Avanzati | shortcode, html, menu_anchor, form | Integrazioni e interazioni. |
{
"type": "gallery",
"columns": 3,
"images": [
{ "id": "{{media_id:project_1}}", "url": "{{media:project_1}}", "alt": "Casa sul lago" },
{ "id": "{{media_id:project_2}}", "url": "{{media:project_2}}", "alt": "Interno contemporaneo" }
]
}8. Immagini e media
SimplyCod Studio accetta JPG, JPEG, PNG, GIF, WebP e AVIF. Le immagini vengono importate nella Libreria Media di WordPress. I PNG mantengono la trasparenza; WebP e AVIF dipendono dal supporto del server WordPress.
"media": {
"hero": "media/hero.jpg",
"portrait": "media/portrait.jpg",
"brand": "media/marchio.png",
"project_1": "media/progetto-01.jpg"
}{
"type": "image",
"url": "{{media:brand}}",
"image_id": "{{media_id:brand}}",
"content": "Marchio Studio Architettura",
"width": 180
}- Compila sempre il testo alternativo per immagini informative.
- Usa JPG o WebP per fotografie; PNG per loghi e trasparenze.
- Ridimensiona le foto alla risoluzione realmente necessaria.
- Usa nomi file minuscoli, senza spazi né caratteri speciali.
- Non collegare immagini temporanee ospitate su siti esterni.
{{media:chiave}} sia l'ID con {{media_id:chiave}}. Il componente resta così stabile anche quando WordPress rigenera URL o dimensioni.9. Token portabili
I token vengono risolti durante l'importazione. Evitano ID WordPress e URL legati al sito su cui il kit è stato creato.
| Token | Risultato | Esempio |
|---|---|---|
{{page:key}} | URL della pagina generata | {{page:contact}} |
{{page_id:key}} | ID WordPress della pagina | {{page_id:home}} |
{{media:key}} | URL del media importato | {{media:hero}} |
{{media_id:key}} | ID allegato WordPress | {{media_id:brand}} |
image_id: 482 o un URL del sito di sviluppo non è portabile e può puntare al contenuto sbagliato sul sito destinatario.10. Moduli nativi
Il componente form genera campi reali, effettua validazione server, usa protezioni nonce e honeypot e invia il messaggio con wp_mail().
{
"type": "form",
"title": "Parliamo del tuo progetto",
"recipient": "",
"subject": "Nuova richiesta dal sito",
"submit_label": "Invia la richiesta",
"success_message": "Grazie, la richiesta è stata inviata.",
"fields": [
{ "type": "text", "name": "full_name", "label": "Nome e cognome", "required": true },
{ "type": "email", "name": "email", "label": "Email", "required": true },
{ "type": "tel", "name": "phone", "label": "Telefono" },
{ "type": "select", "name": "project_type", "label": "Tipo di progetto", "options": ["Nuovo sito", "Restyling", "E-commerce"] },
{ "type": "textarea", "name": "message", "label": "Raccontaci la tua idea", "required": true },
{ "type": "checkbox", "name": "privacy", "label": "Accetto il trattamento dei dati", "required": true }
]
}Tipi supportati: text, email, tel, url, number, date, select, textarea e checkbox. I nomi dei campi devono essere univoci e compatibili con sanitize_key().
recipient vuoto per usare l'email amministrativa di WordPress. È la scelta migliore per un kit redistribuibile.12. Sistema di design
Il blocco design crea una base coerente per tutte le pagine. Scegli colori con contrasto sufficiente e valori adatti sia al desktop sia al mobile.
"design": {
"primary_color": "#176b5b",
"secondary_color": "#d85b43",
"text_color": "#182321",
"surface_color": "#ffffff",
"font_family": "system",
"content_width": 1180,
"button_radius": 4,
"canvas_template": 1
}14. Creare e validare il pacchetto
- Controlla che tutti i JSON siano sintatticamente validi.
- Verifica che ogni file citato nel manifest esista rispettando maiuscole e minuscole.
- Rimuovi file nascosti come
.DS_Storee cartelle di sviluppo. - Comprimi il contenuto della cartella, non la cartella stessa.
- Installa il kit in un WordPress pulito e controlla frontend, editor e mobile.
cd studio-architettura
zip -r ../studio-architettura-1.0.0.zip simplycod-kit.json pages mediaunzip -l studio-architettura-1.0.0.zip15. Versioni, aggiornamenti e ripristino
Mantieni lo stesso id nelle nuove versioni e incrementa version. La copia del blueprint conservata da SimplyCod Studio permette di ricreare pagine mancanti senza disporre nuovamente dello ZIP.
| Modifica | Versione consigliata | Esempio |
|---|---|---|
| Correzione testi o stile | Patch | 1.0.0 → 1.0.1 |
| Nuova pagina o componente compatibile | Minor | 1.0.1 → 1.1.0 |
| Struttura incompatibile o riprogettazione | Major | 1.1.0 → 2.0.0 |
La reinstallazione ripristina le pagine eliminate, ma non dovrebbe sovrascrivere automaticamente le pagine esistenti che l'utente ha modificato. Progetta quindi ogni versione pensando a questo comportamento conservativo.
16. Esempio completo commentato
Il pacchetto ufficiale di esempio raccoglie in un unico kit le casistiche più importanti:
- Tre pagine con navigazione interna tramite token.
- Fotografie JPG e un marchio PNG con trasparenza.
- Hero con sfondo, overlay e allineamento controllato.
- Galleria e componenti immagine con URL e ID media.
- Modulo contatti nativo con campi, privacy e validazione.
- Design system globale riutilizzato dalle pagine.
Usalo subito come prova di importazione.
Pacchetto installabileApri i JSON sorgente e confronta manifest, pagine e media.
Cartella sorgenteCambia ID, nome, contenuti e risorse, poi crea il tuo ZIP.
Schema JSON17. Diagnostica
| Problema | Causa probabile | Soluzione |
|---|---|---|
| Il kit non compare | Manifest fuori dalla radice o non valido. | Apri lo ZIP e verifica che simplycod-kit.json sia al primo livello. |
| Immagine assente | Chiave media errata, file mancante o nome con diversa capitalizzazione. | Confronta manifest, token e percorso reale. |
| PNG con sfondo inatteso | Il file originale non ha un canale alpha o è stato convertito. | Controlla il PNG sorgente e non convertirlo in JPG. |
| Modulo mostrato come testo | Componente non dichiarato come form o struttura campi errata. | Usa il formato nativo mostrato nel capitolo 10. |
| Link verso il sito di sviluppo | URL assoluto salvato nel JSON. | Sostituiscilo con un token {{page:...}} o {{media:...}}. |
| Ripristino incompleto | Chiavi pagina cambiate tra versioni. | Mantieni stabili id del kit e key delle pagine. |
| Email non ricevuta | Configurazione mail del server. | Verifica wp_mail(), spam e SMTP del sito. |
18. Checklist prima della distribuzione
- ID del kit stabile, univoco e documentato.
- Versione aggiornata e note di rilascio disponibili.
- Da 1 a 20 pagine, tutte presenti e valide.
- Nessun URL o ID WordPress del sito di sviluppo.
- Media locali ottimizzati, inclusi test JPG e PNG.
- Test alternativi delle immagini compilati.
- Menu, home, pulsanti e ancore verificati.
- Moduli testati, anche con errori di validazione.
- Header e footer controllati su desktop e mobile.
- Ripristino di una pagina eliminata verificato.
- ZIP entro i limiti e privo di file non ammessi.
- Licenze dei materiali compatibili con la distribuzione.