Aller au contenu principal
Version: 26.0.9.0

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 avec mountReactComponent()
  • 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 filtre elementum.localize
Performance

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, @elementum pour 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 chaque hook() 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
Productivité

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_sitemap pour 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 :

AttributRô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 actif
  • Plugin — gestion des plugins Elementum
  • Post — accès aux données du post courant
  • Query — requêtes WP_Query simplifiées
  • Taxonomy — gestion des taxonomies
  • User — données de l'utilisateur connecté
  • Mail — envoi d'emails
  • Upload — gestion des fichiers uploadés
  • UrlRewriter — 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.jsx via addToEditorScript()
  • 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 Mail pour envoyer des emails facilement
  • Templates d’emails en Twig
  • Tags Twig spécifiques pour emails :
    • email_row
    • email_cols / email_col
    • email_button
    • email_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 ElementumObject fournis
  • React optionnel via mountReactComponent() — props injectées depuis les attributs data-* 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é.