Template
Nouvelle gestion de la hiérarchie des templates.
L'objectif étant de ne plus avoir à créer de fichier tel que : page.php, single.php, archive.php, etc. à la racine du thème.
Ce qui va permettre, au besoin, de créer des plugins qui vont pouvoir gérer également les templates des post types qu'ils vont créer.
Via la configuration config/templates.yaml vous pouvez définir si votre thème accepte que des plugins injecte des vues Twig par le biais de l'attribut #[Template()].
Pour en apprendre plus sur la configuration de templates, rendez-vous sur la page Configuration.
Exemple d'utilisation
Ici, on retourne une vue Twig pour afficher un article de blog. Ce code permet de remplacer la création d'un fichier front-page.php à la racine du thème.
#[Template('front_page')] public function homePage() { $currentDate = date('d/m/Y'); $readingTime = 5; $this->render('@theme/front-page.html.twig', [ 'currentDate' => $currentDate, 'readingTime' => $readingTime ]); }
Page d'accueil et archive
Lors de l'activation d'Elementum, il créer une page Accueil et une page Actualités afin que les spécifié comme page d'accueil et d'archive par défaut.
Dans ce contexte, pour éditer la page d'accueil, il faut spécifier #[Template('front_page')].
Pour éditer la page d'actualités, il faut spécifier #[Template('home')].
Archive de post type
Pour éditer l'archive de post type, il faut spécifier #[Template('post_type_archive', params: ['mon_post_type'])].
Il est préférable d'utiliser la constante SLUG du post type : #[Template('post_type_archive', params: [MyPostType::SLUG])].
Modèle de page
Au préalable, il faut créer le modèle de page depuis la configuration config/templates.yaml.
Configuration des modèles de page
Une fois le modèle de page créé, il faut spécifier #[Template('page', customTemplate: 'mon_modele')].
Arguments
name
string Nom du template.
id
string ID du template.
(optionnel) | "" L'idée est généré automatiquement mais il est fortement recommandé de le spécifier pour facilement identifier le template.
priority
int Priorité du template. Permet de définir l'ordre d'exécution des templates. Principalement fait pour insérer un template dans un autre.
(optionnel) | 10
params
array Paramètres à passer au template.
(optionnel) | []
customTemplate
string Spécifie le nom du template si il s'agit d'une page. Remplace l'utilisation de la hiérarchie de base tel que : page-{template}.php.
(optionnel) | ""