Changelog
26.0.9.6
Améliorations
-
Façade
Taxonomy— champs personnalisés sur les termes : la classeTaxonomyintègre désormais le traitFields, ce qui permet d'ajouter des champs Carbon Fields directement sur les termes d'une taxonomie viaaddContainerFields(), puis de les enregistrer avec la nouvelle méthoderegisterTaxonomyContainers(). Voir documentation. -
Façade
Taxonomy—register()fluent : la méthoderegister()retourne désormais$this, ce qui permet de chaîner des appels supplémentaires après l'enregistrement (ex.->register()->addContainerFields(...)). -
Trait
Fields—registerContainers()paramétrable : la méthode accepte désormais deux paramètres optionnels$type(défaut :"post_meta") et$where(défaut :"post_type"), rendant le trait réutilisable dans des contextes autres que les post types. -
Trait
Fields— nouvelle méthoderegisterTaxonomyContainers(): raccourci deregisterContainers()préconfiguré pour les taxonomies (type: "term_meta",where: "term_taxonomy"). -
Fonction Twig
fn()/function()— correction interne : la gestion des arguments est maintenant variadic (...$args) côté PHP, ce qui corrige le passage de multiples arguments scalaires. Le comportement visible en Twig reste inchangé.
26.0.9.3
Nouveautés
-
Tag Twig
{% pagination %}: nouveau tag block qui expose les données de pagination (prev,next,links) dans son corps. Accepte uneWP_Query. Permet un contrôle total du markup HTML. Voir documentation. -
Fonction Twig
paginate(): nouvelle fonction qui retourne le HTML natif depaginate_links()WordPress. Accepte uneWP_Queryoptionnelle et des labels personnalisés pour les liens précédent/suivant. Voir documentation.
26.0.9.2
Corrections
- Façade
Post—get_field()/get_fields()hors boucle : les deux méthodes utilisent maintenant automatiquement l'ID du post courant lorsqu'aucun$postIdn'est passé en argument. Avant ce correctif, l'ID pouvait ne pas être résolu dans certains contextes (composants isolés, appels hors boucle), retournantfalseou des données erronées.
26.0.9.1
Corrections
- Global Twig
post— injection conditionnelle : la variable globalepostn'est désormais injectée dans le contexte Twig que sur les pages de typesingle. Auparavant, elle était initialisé pour lessingular, ce qui inclus également les posts-type :pageetattachment. Cela générait une erreur.
26.0.9.0
Nouveautés
-
Attribut
#[Hook]: nouvel attribut PHP permettant à un contrôleur (thème enfant, plugin) de surcharger le template et les variables d'un composant ou d'un point d'extension Twig, sans modifier le code source du thème. Voir documentation#[Hook]. -
Fonction Twig
hook(): nouvelle fonction permettant d'insérer des points d'extension dans les templates Twig. Retourne une chaîne vide si aucun contrôleur n'est attaché. Voir documentationhook(). -
Service
twig.hook(Elementum\Services\Twig\Hook) : nouveau service interne qui orchestre le pipeline de hooks Twig. Génère automatiquement un filtre WordPresselm.<hookName>pour chaque composant rendu et chaque appel àhook().register(name, template, args)— enregistre et applique les filtresattach(name, template, callable)— lie un callback à un hook (utilisé par#[Hook])formatName(string)— normalise les noms (/→.)get(name)/exist(name)— introspection
-
component()— support du hook : la fonction Twigcomponent()passe désormais par le serviceHookavant le rendu, ce qui permet de surcharger le template et les variables d'un composant via#[Hook]depuis un thème enfant ou un plugin. -
component()— passage desargsau callback : le callback enregistré sur un composant reçoit désormais les attributs passés àcomponent('name', args)en paramètre. -
Global Twig
post: nouvelle variable globale automatiquement disponible dans les templates singuliers. Injectée viaTwigGlobals::post(), c'est une instance de la façadePost. Disponible uniquement sur les templatessingleetsingular. -
Post::update()/Post::delete(): deux nouvelles méthodes sur la façadePostpour mettre à jour (wp_update_post) ou supprimer (wp_delete_post) le post courant. -
ObjectHelper::toArray(object): array: nouvel utilitaire de conversion d'objet en tableau associatif. -
Nouveaux helpers extraits de
Utils:Elementum\Helpers\WP— méthodes utilitaires WordPress (isCustomizePreview(),getActionsFired()).Elementum\Helpers\Menu— logique de construction de l'arbre de menu (getMenuByLocation(),getMenuTreeByLocation()).Elementum\Helpers\ArrayHelper— utilitaires tableaux/objets (toObject(),flatObject()).Elementum\Helpers\ObjectHelper— utilitaires objets (flatObject(),toArray()).
-
AssetsController::localize()— sécurité : la propriétépath(chemin serveur absolu) est désormais exclue de l'objetwindow.ELEMENTUMinjecté en JavaScript pourmain,themeetchild. -
Boilerplate
colors.yaml: tous les champs sont passés detype: coloràtype: color_contrastavec leurscheck_contrast_colors_idsrespectifs etadd_to_editor: truepour les couleurs de fond. Ajout du champactive: trueau niveau du panneau.
Corrections
-
CLI
new:child— boilerplate incomplet : la commandephp dobby new:childgénérait un thème enfant sanscomposer.json, rendant l'autoload PSR-4 (Elementum\Child\) non fonctionnel. Le boilerplatechildreçoit désormais.gitignore,composer.json,dobby,tsconfig.jsonetvite.config.js. -
Templates— priorité automatique poursingle: le template#[Template('single')]reçoit automatiquement une priorité de100pour laisser la possibilité aux CPT d'utilisersingularsans conflit. -
AppareanceGetters/CustomizeController: tous les appels aux méthodes dépréciées deUtilsremplacés par leurs équivalents dansArrayHelper,ObjectHelperetWP.
Internes
ControllerResolver: ajout du scan et de l'enregistrement de l'attribut#[Hook](registerHook()) dans la boucle de résolution des contrôleurs.- Suppression de
assets/src/Hooks/mountCustomizeField.js, remplacé parmountReactComponent.js.