Temi a blocchi WordPress
Nomi in italiano e inglese delle pagine predefinite e nomi dei file html corrispondenti (e nomi dei file .php aggiunti da Create Block Theme)
Nome del file html | Nome del template nell’editor a blocchi in inglese | Nome del template nell’editor a blocchi in italiano |
author.html | Author Archives | Archivi autore |
tag.html | Tag Archives | Archivi dei tag |
category.html | Category Archives | Archivi della categoria |
date.html | Date Archives | Archivi per data |
single.html | Single Posts | Articoli singoli |
home.html | Blog Home | Home del blog |
index.html | Index | Indice |
front-page.html | Front Page | Pagina principale |
404.html | Page: 404 | Pagina: 404 |
search.html | Search Results | Risultati di ricerca |
page.html | Pages | Pagine |
archive.html | All Archives | Tutti gli archivi |
Di questi file, quando si usa il plugin Create Block Theme, viene creata una corrispondenza in php nella cartella /patterns in caso di aggiunta di codice php (esempi: chiamate a percorsi relativi, internazionalizzazione di stringhe).
Quando il tema viene pubblicato su WordPress, durante la traduzione in https://translate.wordpress.org/, viene proposta la traduzione dei nomi dei pattern allegati al tema. Qui il sistema non sa che i file -nella tabella- da author.php fino a archive.php non sono dei pattern normali e ne propone la traduzione del nome. Però la traduzione di quel nome non serve a nulla perché WordPress nella schermata dei template assegna un nome in lingua ai file .html presenti nella cartella /templates. In sostanza la traduzione o la non traduzione di quei nomi riferiti a file .php non serve a nulla perché non verrà mostrata da nessuna parte.
Questo è ciò che avviene usando il plugin Create Block Theme che seppur trattandosi di uno strumento base è comunque valido per internazionalizzare il progetto.
Ricapitolando.
Nella schermata di traduzione di temi costruiti con l’aiuto di Create Block Theme, troveremo spesso stringhe come questa (in tutto sono possibili dodici stringhe):
archive
Context
Pattern title
References
pattern/archive.php:0
visualizzando il file indicato in References, all’inizio si leggerà questo:
<?php
/**
* Title: archive
* Slug: nome-del-tema/archive
* Inserter: no
*/
?>
La chiave che ci fa capire che quel pattern non è un pattern normale ma una pagina del tema (o una parte del template come header o footer) è la chiave Inserter che ha come valore no.
Perché Create Block Theme crea alcuni o tutti quei file .php nella cartella /patterns.
Quando si salva il tema utilizzando Create Block Theme, il plugin deve relativizzare i percorsi dei file prima di creare il file .zip per il download (altrimenti non potremmo usare il tema altrove) sia in caso creazione del tema in localhost, sia in caso di creazione del tema in un sito produttivo e internazionalizzare le stringhe per poter essere tradotte in seguito. WordPress cerca i file del tema nella directory /templates e lì li trova in formato .html. Ma la relativizzazione dei percorsi e l’internazionalizzazione del tema richiedono l’aggiunta di codice php quindi il plugin scrive un segnaposto dentro il file .html e sposta il contenuto dello stesso dentro un file con lo stesso nome ma con estensione .php nella directory /patterns.
Esempio di segnaposto
<!-- wp:pattern {"slug":"nome-del-tema/archive"} /-->
Quando WordPress chiamerà la pagina Tutti gli archivi, si dirigerà in /template/archive.html e a sua volta archive.html chiamerà un super pattern al cui interno ci sia la stringa * Slug: nome-del-tema/archive (nel nostro caso /patterns/archive.php). Il contenuto di quel file verrà processato da WordPress quando il browser chiamerà Tutti gli archivi.
P.S. Si può anche non usare il plugin Create Block Theme, è possibile lavorare a mano carattere per carattere e file per file. Avendo tempo possiamo assegnare a Tutti gli archivi (ovvero archive.html un file a nostro piacimento.
Esempio:
dentro archive.html scriviamo il segnaposto
<!-- wp:pattern {"slug":"nome-del-tema/tutti-gli-archivi"} /-->
e nella directory /pattern creiamo il file tutti-gli-archivi.php che all’interno avrà questo incipit (e a seguire il contenuto della pagina)
<?php
/**
* Title: Tutti gli archivi
* Slug: nome-del-tema/tutti-gli-archivi
* Inserter: no
*/
?>
...codice html della pagina
Ciò anche per gli altri possibili undici file.