Il wordpress Gpci framework comprende vari templates predefiniti per generare le pagine del sito. Ho cercato di creare il minor numero di templates possibili (indicativamente uno per ogni genere di pagina) per mantenere semplice l'interfaccia e la manutenzione degli stessi. I templates hanno le seguenti proprietà:
- sono selezionati automaticamente da wordpress per generare il contenuto della query principale
- sono completamente configurabili tramite il site editor
- possono essere creati tramite file per portabilità
- possono essere facilmente creati tramite il site editor per l'utilizzo sul sito corrente
Ricordarsi che i templates fanno sempre riferimento alla pagina intera, per le parti di pagina invece utilizzare le template parts.
Lista templates
Questa è la lista dei templates predefiniti del sito, per crearne di nuovi vedere la sezione sotto.
Archivi autore
- Slug: author
Gli archivi autore sono le pagine che contengono la lista degli articoli dell'autore singolo. Ci sono quindi tante pagine archivi autore quanti sono gli autori. In questo framework le pagine autore sono disabilitate di default, in quanto nei siti comuni non sono quasi mai usate e per utilizzarle devono essere compiute delle operazioni attive. Per riattivare gli archivi autore abilitare l'opzione corrispondente. Ogni archivio autore in wordpress è figlio di una pagina author non esistente, quindi per evitare degli errori 404 (pagina non trovata) sulla pagina padre, la soluzione più semplice è creare una nuova pagina con slug author e inserire una query di autori manualmente.
Archivi dei tag
- Slug: tag
Gli archivi dei tag sono gli archivi relativi i tags del sito.
Archivi per data
- Slug: date
Gli archivi per data sono gli archivi relativi le pagine delle date, esempio: https://www.gigitopcinformatica.it/2024/
Home del blog
- Slug: home
Il template home del blog è utilizzato nella pagina in cui viene generata la query degli articoli default. Di base è la pagina iniziale, è modificabile a un'altra pagina selezionabile in customizer/Impostazioni homepage oppure dal site editor.
Indice
- Slug: index
il template index è uno dei più importanti. Se non è stato creato un template per un certo post type sarà utilizzato in ogni pagina/articolo singolo, inoltre quando viene creato un template personalizzato per post type singolo viene inizialmente clonato da questo. Ho cercato di tenere questo template il più generale possibile, quindi include:
- header
- main - con sezione principale contenente titolo h1 + breadcrumbs e sotto il contenuto del post
- footer
Modalità manutenzione
- Slug: maintenance
Questo template verrà visualizzato al posto del contenuto di qualsiasi post se abilitata la modalità manutenzione.
404
- Slug: 404
Questo template è utilizzato nella pagine non trovate del sito.
Tutti gli archivi
- Slug: archive
Anche questo template è molto importante. Genera il contenuto degli archivi e, se creato un nuovo archivio, inizialmente viene clonato da questo. Anche qui il contenuto è generale e semplice:
- header
- main - con sezione principale contenente titolo h1 + breadcrumbs e sotto il contenuto dell'archivio
- footer
E' bene specificare che gli archivi sono generati da automaticamente wordpress, se verrà creata una pagina con lo stesso slug dell' archivio ( esempio: https://www.gigitopcinformatica.it/docs/ ) verrà mostrato l'archivio al posto della pagina.
Creare nuovi template
I templates funzionano esattamente come in un qualunque tema a blocchi di wordpress. E' possibile creare nuovi template in 2 modi: via file o tramite site editor, ed è necessario capire sin da subito come si comportano. I templates sono utilizzati con questa priorità (appena rispettata la prima possibile il template viene scelto):
- database: se vengono modificati nel site editor sono sempre memorizzati nel database
- cartella templates tema child
- cartella templates tema genitore
Ci sono anche ulteriori priorità di scelta (per i file) che probabilmente non verranno quasi mai usate in questo framework ma potrebbe essere utile conoscere. Per approfondire il tutto utilizzare le seguenti documentazioni:
- template editor
- gerarchia dei templates
- fullsiteediting: templates and template parts
E' da specificare comunque che in questo framework, probabilmente, i casi d'uso principali saranno:
- creare un template utilizzando il site editor per il sito corrente
- copiare i blocchi in un file html nella cartella templates del tema figlio per copiare i templates da un'installazione a un'altra
Ottenere templates
E' possibile ottenere i templates con slug personalizzato (quindi non 404, index, home, ecc...) anche tramite codice (come nella modalità manutenzione) per poterli utilizzare in funzioni php e javascript. Tenere a mente queste regole:
- lo slug del template è il nome del file senza estensione
- il post type è sempre wp_template
- l'id della funzione get_block_template è gpci-child//SLUG (notare i doppi slash)
Qui di seguito alcuni esempi:
Esempi
Questo è il codice php della modalità manutenzione:
$post = get_block_template( $id='gpci-child//maintenance', 'wp_template' );
$blocks = parse_blocks( $post->content );
if( $blocks ){
foreach( $blocks as $block ){
$blocksHtml.=apply_filters( 'the_content', render_block( $block ) );
}
}
