Fonctionnalités
Elementum fournit un ensemble d’outils et de fonctionnalités destinés à accélérer le développement de thèmes et de plugins WordPress modernes.
Le framework agit comme une couche d’architecture au-dessus de WordPress pour améliorer la maintenabilité, les performances et l’expérience développeur.
⚙️ Automatisations
Elementum prend en charge automatiquement plusieurs optimisations techniques :
- Optimisation des images : conversion et compression automatique au format
WebP - Optimisation des assets : concaténation et minification des fichiers CSS et JavaScript
- Compilation SCSS : prise en charge native des fichiers SCSS via le système de personnalisation
- Support du thème : déclaration automatique des supports WordPress (menus, logo, thumbnails, etc.)
- AlpineJS intégré : micro-interactions JavaScript simplifiées sans framework lourd
⚡ Pipeline assets — Vite
Chaque thème et plugin Elementum embarque un pipeline de build moderne basé sur Vite :
- TypeScript natif — les fichiers d'entrée sont en
.ts, transpilés automatiquement - SCSS — compilation avec alias, variables partagées et import du design system Elementum via
@elementum - React — support optionnel via
@vitejs/plugin-react, composants montés avecmountReactComponent() - AlpineJS — démarré automatiquement dans les bundles front, admin et Customizer
- Trois bundles séparés :
bundle.js(front),bundleAdmin.js(admin),bundleCustomize.js(Customizer) window.ELEMENTUM— objet global localisé en PHP, disponible en TypeScript, extensible via le filtreelementum.localize
Ces optimisations sont appliquées automatiquement sans configuration complexe.
🔐 Sécurité
Elementum renforce la sécurité par défaut de WordPress :
- Modification de l’URL de connexion
- Masquage des numéros de version WordPress
- Désactivation de l’API XML-RPC
- Suppression des auteurs du sitemap XML
- Suivi de la dernière connexion utilisateur
🧩 Templates & rendu
Elementum remplace le système de templates WordPress par Twig :
- Utilisation du moteur Twig pour séparer logique et présentation
- Personnalisation des pages système (connexion, mot de passe oublié…)
- Ajout de tags Twig personnalisés (
menu,wp_query, etc.) - Mise à disposition de variables globales :
page,site,request,user - Possibilité d'injecter de la logique métier proprement dans les composants
- Namespaces Twig :
@theme,@child,@elementumpour référencer les vues par projet - Fonctions Twig :
component(),hook(),route(),link(),fn(),debug(),dd() - Filtres Twig :
sub,word,tel_href,mail_to
🔌 Extensibilité — Hooks Twig
Elementum introduit un système de points d'extension natif au-dessus de WordPress :
- Attribut
#[Hook]: surcharge le template et les variables d'un composant depuis un thème enfant ou un plugin, sans modifier le code source - Fonction
hook(): insère un point d'extension dans un template Twig — silencieux par défaut, activé dès qu'un contrôleur s'y attache - Filtres
elm.*: chaque composant et chaquehook()génère automatiquement un filtre WordPress interceptable
🖥 CLI — dobby
Elementum inclut un outil en ligne de commande : dobby
php dobby <commande>
Fonctionnalités principales :
- Génération de controllers
- Création de post-types
- Création de blocs Gutenberg
- Création de thèmes et plugins
- Publication de fichiers de configuration (
dobby publish) - Création de commandes CLI personnalisées
La CLI permet de générer la majorité de la structure d’un projet en quelques secondes.
🎨 Personnalisation (Customizer)
La personnalisation du thème repose sur des fichiers YAML :
- Déclaration des panneaux, sections et champs via YAML
- Génération dynamique de sections
- Champs avancés :
color_contrast(gestion automatique du contraste)remixicon(sélecteur d’icônes)
- Surcharge possible depuis un thème enfant ou un plugin
🔎 SEO
Elementum améliore le référencement technique :
- Shortcode
elementum_sitemappour générer un plan de site HTML - Amélioration du sitemap XML natif :
- suppression des auteurs
- filtrage des types de contenu
- gestion du nombre maximal d’URLs
🍪 Conformité RGPD
- Intégration prête à l’emploi de Tarteaucitron.js
- Support de Matomo pour l’analytics respectueux de la vie privée
🏷 Attributs PHP
Elementum exploite les attributs PHP natifs pour éliminer la configuration répétitive :
| Attribut | Rôle |
|---|---|
#[Template] | Associe une méthode à un template WordPress (page, front_page…) |
#[Component] | Lie une méthode à un composant Twig réutilisable |
#[Hook] | Surcharge un composant ou un point d'extension Twig |
#[Action] | Équivalent à add_action() |
#[Filter] | Équivalent à add_filter() |
#[Route] | Déclare une route personnalisée |
#[Api] | Enregistre un endpoint REST WordPress |
#[Shortcode] | Déclare un shortcode WordPress |
#[Widget] | Ajoute un widget au tableau de bord |
#[Alert] | Affiche une notification dans l'administration |
#[Bridge] | Expose une méthode en fonction procédurale globale (elm_*) |
#[Kernel] | Exécute une méthode à l'initialisation du kernel |
#[Config] | Enregistre un fichier de configuration dynamique |
🎭 Façades
Elementum fournit des façades pour accéder aux services courants sans injection de dépendance :
Theme— informations sur le thème actifPlugin— gestion des plugins ElementumPost— accès aux données du post courantQuery— requêtes WP_Query simplifiéesTaxonomy— gestion des taxonomiesUser— données de l'utilisateur connectéMail— envoi d'emailsUpload— gestion des fichiers uploadésUrlRewriter— manipulation des URLs
🧱 Blocs Gutenberg
Elementum simplifie la création de blocs Gutenberg sur-mesure :
- Génération via
php dobby make:block - Rendu côté serveur via Twig ou React
- Transmission de variables PHP à
editor.jsxviaaddToEditorScript() - Enregistrement automatique des blocs depuis
app/Blocks/
🔒 Rôles & permissions
- Création et gestion des rôles WordPress via configuration YAML
- Attribution de capacités personnalisées par rôle
👶 Thème enfant
- Activation simplifiée via
Kernel::elementumChildTheme() - Contrôleurs et composants du thème enfant chargés automatiquement dans l'écosystème
- Namespace dédié
Elementum\Child\pour éviter les conflits - Surcharge de composants du thème parent via
#[Hook]sans toucher au code source
🌐 Router, API REST & Shortcodes
- Déclaration de routes personnalisées avec
#[Route] - Endpoints REST WordPress via
#[Api] - Shortcodes WordPress via
#[Shortcode] - Échappement automatique des routes 404
🧭 Administration
Elementum simplifie l'interface d'administration :
- Création de pages admin personnalisées avec formulaires et champs YAML
- Protection CSRF automatique (nonce WordPress)
- Support des sous-pages et menus imbriqués
- Gestion centralisée des notifications (
admin_notices) - Création de widgets personnalisés pour le tableau de bord
🔄 Updater
- Système de mise à jour intégré pour les thèmes et plugins hébergés sur GitLab
- Génération automatique d'un changelog consultable depuis l'admin WordPress
✉️ Mailing
Un système d’envoi d’emails moderne basé sur Twig :
- Façade
Mailpour envoyer des emails facilement - Templates d’emails en Twig
- Tags Twig spécifiques pour emails :
email_rowemail_cols/email_colemail_buttonemail_spacer
- Configuration SMTP centralisée
- Support de Maildev en développement
👨💻 Expérience développeur
Elementum met l'accent sur la qualité du développement :
- Configuration centralisée en YAML
- Utilisation d'attributs PHP (routes, hooks, templates…)
- Autoload automatique des contrôleurs, composants, blocs et fonctions Twig
- Intégration native des icônes Remix Icon
- TypeScript natif avec types
ElementumObjectfournis - React optionnel via
mountReactComponent()— props injectées depuis les attributsdata-*HTML - AlpineJS intégré — disponible sans configuration dans tous les bundles
- Flash messages (
FlashBag) pour les retours utilisateur - Messages de debug Twig :
dump(),dd()variadiques
Elementum vise à fournir un cadre moderne, structuré et productif pour développer sur WordPress tout en conservant sa flexibilité.