@wordpress/components

Définition : @wordpress/components est la bibliothèque de composants d’interface WordPress : boutons, champs, panneaux et contrôles. Elle aide à construire des écrans cohérents avec l’administration et l’éditeur.

Comprendre et utiliser

À quoi cela sert ?

Elle évite de recréer des contrôles basiques avec des styles et comportements divergents. Elle reste une bibliothèque UI : ses composants ne sauvegardent pas automatiquement les données métier.

Comment cela fonctionne ?

TextControl, ToggleControl ou PanelBody reçoivent des valeurs et des callbacks. Dans un bloc, setAttributes() permet de relier un contrôle aux attributs édités.

Dans quel contexte l’utiliser ?

Employer cette bibliothèque pour les réglages d’un bloc ou les interfaces administratives créées en JavaScript, lorsque le comportement attendu est de modifier un état contrôlé.

Cas concret : ATOOLPHA

Pour un bloc « Encadré », proposer un interrupteur permettant d’activer ou non une bordure, sans obliger le rédacteur à taper une classe CSS.

Exemple de code commenté

Extrait documentaire : le contexte WordPress du plugin/éditeur et les dépendances décrites sont nécessaires ; ne pas coller dans le contenu d’une page.

const { ToggleControl } = wp.components;
const { createElement } = wp.element;
function BorderOption( { enabled, onChange } ) {
    return createElement( ToggleControl, {
        label: 'Afficher une bordure',
        checked: Boolean( enabled ),
        onChange,
    } );
}

Décryptage de l’exemple

Le contrôle reçoit son état par enabled et remonte un nouveau booléen via onChange. Le parent doit connecter ce callback à setAttributes() ou à une autre source d’état appropriée.

Résultat attendu

Le bouton affiche immédiatement la valeur reçue ; aucun réglage WordPress n’est enregistré tant que le composant parent ne le fait pas.

Atelier pratique de vérification

Brancher un ToggleControl sur un attribut booléen et noter son état après trois modifications. Couper ensuite sa mise à jour contrôlée pour observer le retour à une valeur antérieure. Réparer le flux de données, puis expliquer ce que les composants d’interface fournissent et ce qu’ils ne sauvegardent pas eux-mêmes.

Précautions et limites

Ne pas confondre composant contrôlé et validation des données. Vérifier les types de valeurs, les permissions et les traitements serveur lors de l’enregistrement réel.

Contrôle avant intégration dans un plugin

Tester l’accessibilité des champs, leur traduction et les états désactivés. Les contrôles visuels ne remplacent ni la validation serveur, ni le contrôle d’autorisation sur les données qu’ils modifient.

À ne pas confondre

@wordpress/components fournit des champs génériques ; InspectorControls choisit leur emplacement dans l’interface d’un bloc.

Diagnostic et dépannage avancés

Si un ToggleControl revient à son état initial après une modification, vérifier que la propriété checked est effectivement mise à jour après le callback.

Notions associées

  • InspectorControls
  • Attributs de bloc
  • @wordpress/block-editor

Références officielles

Bouton retour en haut de la page