Repository: https://niphredil.duckdns.org/git/fabio/tonitalia-theme.git
Cartella WordPress: wp-content/themes/tents-singlepage-child/
Nome tema: Tents Single Page (Twenty Seventeen Child)
Versione attuale: 1.0.11
Parent obbligatorio: Twenty Seventeen (twentyseventeen)
Il child theme trasforma il sito in un layout single-page sulla homepage: ogni voce di primo livello del menu principale che punta a una pagina diventa una sezione scrollabile con ancora (#section-slug).
Le pagine interne (sottomenu o link diretti) mantengono il comportamento classico di WordPress con permalink normali.
| Requisito | Dettaglio |
|---|---|
| WordPress | 6.0+ consigliato |
| PHP | 8.0+ (allineato all’hosting) |
| Tema parent | Twenty Seventeen installato e attivo |
| Menu | Posizione tema top (Menu principale) configurata |
tents-singlepage-child in wp-content/themes/.| File / cartella | Ruolo |
|---|---|
style.css |
Intestazione tema (Template: twentyseventeen) |
functions.php |
Asset, Customizer, menu ancore, helper sezioni |
front-page.php |
Template homepage: renderizza tutte le sezioni |
page.php |
Pagine interne con titolo stile homepage |
template-parts/section-generic.php |
Markup di ogni sezione homepage |
template-parts/navigation/navigation-top.php |
Menu superiore (override child) |
template-parts/navigation/menu-toggle-button.php |
Bottone hamburger menu (componente riutilizzabile) |
template-parts/page/content-page.php |
Contenuto pagine interne |
assets/css/singlepage.css |
Stili layout single-page, header fisso, sezioni |
assets/js/singlepage.js |
Scroll ancore, menu mobile, header fisso |
La funzione tents_singlepage_get_sections() legge il menu nella posizione top:
menu_item_parent = 0).object = page).section-{slug-pagina} (es. section-chi-siamo)the_content)front-page.phpIn homepage WordPress carica front-page.php, che in loop chiama template-parts/section-generic.php per ogni sezione.
Se nessuna sezione è disponibile (menu vuoto o mal configurato), mostra un fallback con il contenuto pagina front-page standard.
section-generic.php)Ogni sezione può avere:
section_{slug}_bg_color, section_{slug}_text_color, ecc.).Filtro tents_singlepage_filter_nav_menu_link_attributes:
| Livello menu | Destinazione link |
|---|---|
| Primo livello (pagina) | Sempre https://sito.it/#section-{slug} — anche da pagine interne |
| Secondo livello e oltre | Permalink normale della pagina (get_permalink) |
Esempio struttura menu:
Chi siamo → /#section-chi-siamo (primo livello) Progetti → /#section-progetti └ Sotto-progetto A → /progetti/sotto-a/ (secondo livello) Contatti → /#section-contatti
singlepage.js)/#section-* e scroll al caricamento.is-open su .singlepage-nav; con header fisso attivo il toggle è anche nella barra superiore (menu-toggle-button.php).singlepage-menu-container--mobile-panel.--tents-fixed-header-height per offset scroll corretto.#section-slug all’apertura pagina (deep link).singlepage.css: colori menu responsive con header fisso (mobile/desktop).functions.php se WP Fastest Cache o regole globali del parent forzano testo bianco illeggibile sul menu mobile.top (dipende dall’etichetta in Personalizza).Aspetto → Personalizza espone impostazioni aggiuntive del child theme.
Sezione dedicata (es. “Header fisso” / impostazioni tents_singlepage_fixed_header):
--tents-fixed-header-*.Per ogni pagina usata come sezione homepage, il Customizer registra dinamicamente:
Gli slug delle impostazioni seguono il nome slug della pagina WordPress.
Sezione Social nel Customizer:
Il child normalizza URL asset locali (tents_singlepage_normalize_*) per evitare problemi con localhost vs produzione dopo migrazione.
page.php + content-page.php:
tents-home-title-typography (stessa tipografia titoli sezioni homepage, colori da tema).Utile per: privacy policy, iscrizione socio (shortcode plugin), articoli lunghi, sottopagine del menu.
get_template_directory_uri() (evita path errati del child).singlepage.css gestisce: sezioni full-width, contrasto testo, menu responsive, header fisso.filemtime per cache busting in sviluppo.front-page.php ha priorità)top con voci primo livello = pagine| Problema | Possibile causa | Soluzione |
|---|---|---|
| Homepage senza sezioni | Menu non assegnato a top o voci non sono “Pagina” |
Riconfigurare menu |
| Click menu non scrolla | Link non è #section-* |
Verificare che la voce sia primo livello + pagina |
| Colori titoli pagine interne diversi | Normale: parent usa stili diversi | Child applica tents-home-title-typography in content-page.php |
| Immagini rotte dopo migrazione | URL assoluti localhost | Search-replace DB o filtri normalize nel tema |
| Header copre contenuto | Header fisso attivo | JS imposta offset; verificare has-tents-fixed-header su body |
| Menu mobile testo bianco su sfondo chiaro | Cache CSS / parent Twenty Seventeen | Aggiornare a v1.0.11+; purge WP Fastest Cache |
cd wp-content/themes/tents-singlepage-child git pull origin master git add . git commit -m "v1.0.x: descrizione" git push origin master
Pacchetti zip in releases/tents-singlepage-child-X.Y.Z.zip (tag Git vX.Y.Z).
Download ultima release (1.0.11):https://niphredil.duckdns.org/fabio/tonitalia-theme/raw/v1.0.11/releases/tents-singlepage-child-1.0.11.zip
Generazione zip dal progetto sito: ./deploy/build-theme-zip.sh (legge la versione da style.css).
Importante: lo zip deve contenere la cartella tents-singlepage-child/ come radice.
| Versione | Novità principali |
|---|---|
| 1.0.11 | Menu toggle in header fisso, pannello mobile, fix colori menu con cache |
| 1.0.0 | Release iniziale single-page, header fisso, Customizer sezioni |
Non includere nel repo del tema: l’intero sito WordPress, plugin, upload.
[ton_registration_form] in una pagina (es. voce menu secondo livello o pagina dedicata).