Un développeur habitué aux palettes de commandes des éditeurs de code modernes a été le premier, sur l’équipe, à repérer la nouveauté : depuis WordPress 6.3, un raccourci clavier familier — Ctrl+K sous Windows et Linux, Cmd+K sous macOS — ouvre une fenêtre de recherche rapide dans l’éditeur de site, permettant de naviguer vers un template, un article récent ou un réglage sans quitter le clavier.
Au-delà de l’usage courant, cette Command Palette s’ouvre également aux développeurs : il est possible d’y enregistrer ses propres commandes, statiques ou générées dynamiquement, pour accélérer des actions récurrentes sur un projet donné.
Utiliser la palette au quotidien
Une fois ouverte, la palette propose une recherche en texte libre qui couvre les pages, les articles récents, les templates et plusieurs réglages d’administration. Taper le début du nom d’un template suffit généralement à le retrouver plus vite qu’en naviguant manuellement dans le panneau latéral.
Enregistrer une commande statique avec useCommand

Pour ajouter une commande fixe, l’API JavaScript expose le hook useCommand, importé depuis le module @wordpress/commands. Sur un projet où les rédacteurs consultaient fréquemment une page de mentions légales pour vérification, on a ajouté un raccourci direct :
import { useCommand } from '@wordpress/commands';
useCommand( {
name: 'mon-theme/ouvrir-mentions-legales',
label: 'Ouvrir les mentions légales',
icon: 'admin-page',
callback: () => {
window.location.href = '/wp-admin/post.php?post=42&action=edit';
},
} );
Générer des commandes dynamiques avec useCommandLoader
Quand le nombre de commandes possibles dépend de données variables — par exemple, ouvrir directement l’un des templates personnalisés existants — le hook useCommandLoader devient plus adapté. Il reçoit une fonction qui retourne dynamiquement la liste des commandes disponibles, à partir d’une source de données comme l’API REST.
import { useCommandLoader } from '@wordpress/commands';
useCommandLoader( {
name: 'mon-theme/ouvrir-template',
hook: () => {
const commands = templates.map( ( template ) => ( {
name: template.slug,
label: `Ouvrir le template ${ template.title }`,
callback: () => navigateToTemplate( template.id ),
} ) );
return { commands, isLoading: false };
},
} );
Où placer ce code
- Un script chargé via
enqueue_block_editor_assets, ciblant spécifiquement l’éditeur de site. - Une dépendance déclarée sur
wp-commandsdans l’enregistrement du script. - Un test systématique après chaque mise à jour majeure, l’API restant récente et sujette à ajustements.
Limites observées à ce stade
L’API reste jeune : la documentation officielle couvre les cas de base, mais certains comportements avancés, comme le regroupement de commandes par catégorie personnalisée, demandent encore de lire directement le code source du module @wordpress/commands pour en comprendre les subtilités.
Retirer une commande devenue inutile
Un point moins documenté concerne la désactivation d’une commande enregistrée par erreur ou devenue obsolète après une refonte. Le hook useCommand ne propose pas de fonction de retrait directe : la pratique observée dans l’écosystème consiste plutôt à conditionner l’enregistrement lui-même, en amont, via une vérification côté PHP ou JavaScript avant même que le hook ne s’exécute, plutôt que d’essayer de supprimer une commande déjà enregistrée en cours de session.
En résumé
La Command Palette est une de ces fonctionnalités dont l’utilité ne saute pas immédiatement aux yeux, jusqu’à ce qu’on en prenne l’habitude. Pour un thème ou une extension destinés à une équipe qui passe plusieurs heures par jour dans l’éditeur de site, y ajouter quelques commandes ciblées avec useCommand ou useCommandLoader représente un investissement modeste pour un gain de confort quotidien bien réel.