Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/nicolascaen/up-gutenberg-easy-option/archive/refs/heads/Master.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
Ajoute des options configurables (toggles, sélecteurs et presets) aux blocs Gutenberg pour ajouter/retirer des classes CSS depuis l’inspecteur de l’éditeur. Les options peuvent être groupées par panneau (metabox) personnalisé dans l’inspecteur et être gérées depuis une interface d’administration (import/export inclus).
- Route REST:
GET /up/v1/switches - Filtre PHP:
up_block_switches
Installation
- Copiez le dossier
up-gutenberg-easy-optiondanswp-content/plugins/. - Activez le plugin dans WP-Admin > Extensions.
Usage rapide
Déclarez vos options par bloc via le filtre up_block_switches.
Types disponibles:
toggle(par défaut): ajoute/retire une classe unique.select: propose plusieurs classes exclusives (une seule active à la fois).preset: applique un ensemble de classes (bundle) exclusif.
Champs communs:
id: identifiant unique (par bloc)label: libellé affiché dans l’éditeurpanel(optionnel): nom du panneau dans l’inspecteur pour regrouper les contrôles
Spécifique toggle:
class: classe CSS à ajouter/retirer
Spécifique select:
options: tableau d’options{ id, label, classes[] }(classes exclusives)
Spécifique preset:
options: tableau d’options{ id, label, classes[] }(chaque option représente un bundle de classes)
Exemple (dans functions.php du thème ou mu-plugin)
add_filter('up_block_switches', function($switches) {
// Pour les paragraphes
$switches['core/paragraph'][] = [
'id' => 'highlight',
'label' => 'Surbrillance',
'class' => 'is-highlight',
'panel' => 'Apparence',
];
// Select exclusif sur Media & Texte
$switches['core/media-text'][] = [
'type' => 'select',
'id' => 'taille',
'label' => 'Taille',
'panel' => 'Apparence',
'options' => [
[ 'id' => 'sm', 'label' => 'Petite', 'classes' => ['is-sm'] ],
[ 'id' => 'md', 'label' => 'Moyenne', 'classes' => ['is-md'] ],
[ 'id' => 'lg', 'label' => 'Grande', 'classes' => ['is-lg'] ],
],
];
// Preset (bundle) appliquant plusieurs classes
$switches['core/media-text'][] = [
'type' => 'preset',
'id' => 'hero-style',
'label' => 'Style Hero',
'panel' => 'Apparence',
'options' => [
[ 'id' => 'minimal', 'label' => 'Minimal', 'classes' => ['is-hero', 'is-hero--minimal'] ],
[ 'id' => 'image-left', 'label' => 'Image gauche', 'classes' => ['is-hero', 'is-hero--image-left'] ],
],
];
return $switches;
});
Comment ça marche
- À l’ouverture de l’éditeur, le plugin récupère la configuration via la route REST.
- Les contrôles sont groupés par
paneldans l’InspectorControls (par défaut “Options UP”). toggle: coche/décoche et ajoute/retire une ou plusieurs classes dansattributes.className.select: sélection exclusive d’une classe parmi les options (remplace les autres classes du même contrôle).preset: sélection exclusive d’un bundle (une ou plusieurs classes) et remplacement d’autres bundles définis dans le contrôle.
Interface d’administration
- Accédez à Réglages > UP Gutenberg Options.
- Ajoutez vos blocs, contrôles (toggle/select/preset) et classes via l’interface.
- Possibilité de dupliquer/supprimer des contrôles, d’ajouter des options multiples et de réordonner manuellement.
- La configuration est sauvegardée dans les options WordPress et fusionnée avec le filtre
up_block_switches. - Enregistrez un panneau comme préconfiguration via le bouton Enregistrer le panneau comme préconfig.
Import / Export
- Export: génère un fichier JSON de la configuration actuelle.
- Import: téléversez un JSON exporté; les blocs/contrôles sont fusionnés avec la configuration existante (mêmes
idremplacés, nouveaux ajoutés) sans duplication.
Préconfigurations (presets)
- Les préconfigurations sont stockées dans
plugins/up-gutenberg-easy-option/prefconfig/sous forme de fichiers JSON (bloc-panel.json). - Chaque fichier contient les blocs ciblés, le panneau et les contrôles associés. Les noms de fichiers sont générés en minuscules sans espaces.
- Depuis Réglages > UP Gutenberg Préconfigurations, prévisualisez le JSON, importez un preset (fusion automatique avec la config courante) ou exportez-en un nouveau.
- L’enregistrement d’un panneau crée/écrase le fichier correspondant; l’import depuis la page préconfigurations met à jour la configuration active comme un import global.
Bonnes pratiques
- Préfixez vos classes (ex:
is-...) pour éviter les collisions. - Gardez des
idstables (ils servent de clé d’UI par bloc). - Ciblez précisément vos blocs:
core/paragraph,core/media-text,acf/hero, etc.
Dépannage
- Les toggles n’apparaissent pas: vérifiez que le bloc courant est listé dans la config retournée par le filtre.
- 401/nonce REST: assurez-vous d’être connecté à l’admin et que l’éditeur charge correctement
wp-api-fetch.
Changelog
0.6.2 - 2025-01-14
- Nouvelle page "Configurations du filtre" pour afficher les configurations créées via le filtre
up_block_switches. - Affichage détaillé en JSON des configurations par bloc avec compteur de contrôles.
- NOUVEAU: Possibilité d'enregistrer chaque contrôle individuellement comme préconfiguration.
- NOUVEAU: Page "Générer dans le thème" pour exporter les options dans le thème (JSON + root.php + class + assets) afin de conserver la fonctionnalité même si le plugin est désactivé.
- Interface améliorée avec visualisation détaillée de chaque contrôle (Label, ID, Type, Panel).
- Bouton JSON pour afficher le code de chaque contrôle individuel.
- Sauvegarde flexible : contrôles individuels, blocs complets ou toutes les configurations.
- Les préconfigurations créées (contrôles uniques ou blocs) peuvent ensuite être importées dans la configuration principale.
- Structure de fichier optimisée :
[control-id]-[panel-name].jsonpour les contrôles individuels.
0.5.0 - 2025-11-04
- Nouveau type
number: génère une classe dynamiqueprefixe-NUMavec gestion optionnelle demin,max,step,default(vide = pas de classe). - Nouveau type
palette: sélection basée sur les tokens du thème (colors,fontSizes,spacing).- Récupération robuste côté éditeur et désormais enrichie côté PHP via
wp_get_global_settings()(les options sont servies directement par l’API REST).
- Récupération robuste côté éditeur et désormais enrichie côté PHP via
extra(classes supplémentaires) sur tous les types: ajoutées lorsque le contrôle est actif, retirées lorsqu’il ne l’est pas.- Admin: sélection de la source palette (Couleurs, Tailles de police, Espacement) et champ « Classes supplémentaires ».
- Tolérance sur les séparateurs: les virgules dans les listes de classes sont acceptées et converties en espaces (admin et backend).
- Correctifs: stabilité de l’UI admin, restauration du sélecteur de type, prise en charge des panneaux multiples.
0.4.0 (2025-11-01)
- Menu dédié « UP Gutenberg » avec sous-pages « Configuration » et « Préconfigurations ».
- Dashboard sur la page top-level avec raccourcis, compteurs et bonnes pratiques.
- Page « Préconfigurations »: liste des JSON dans
prefconfig/, aperçu, import (fusion), enregistrement de panneaux en presets. - Admin UI: copier/coller de contrôles entre panneaux, panneau en premier, champs alignés (Type / ID / Label), options
select/presetsur une ligne. - Import: fusion avec la configuration existante sans duplication (mêmes
idmis à jour). - Multi-blocs: support des noms de blocs séparés par virgules.
0.3.1 (2025-11-01)
- Interface d’administration: aperçu groupé par panneau (badges de type, chips de classes, bouton Éditer).
- Édition: champ
Panneauen premier avec aide; libellés renommés (« Identifiant de l'input », « Label de l'input »). - Mise en page: champs principaux alignés (Type / ID / Label) et options
select/presetsur une seule ligne (ID / Label / Classes). - Préconfigurations: bouton Enregistrer le panneau (création JSON) + page dédiée listant/aperçus/imports depuis
prefconfig/. - Configuration: support des blocs multiples via noms séparés par des virgules.
- Import: fusion avec la configuration existante sans duplication (mêmes
idmis à jour).
0.3.0 (2025-11-01)
- Interface d’administration (gestion graphique, import/export JSON).
- Ajout des presets/bundles (type
preset) et support de classes multiples. - Compatibilité améliorée pour les définitions
class/classescôté filtre.
0.2.0
- Ajout du type
selectavec gestion de classes exclusives. - Groupement par
panel(metabox) dans l’inspecteur. - Compatibilité ascendante avec les définitions existantes.
0.1.0
- Version initiale: toggles par bloc via filtre et API REST.
Licence
MIT