Bloquer le répertoire de blocs de WordPress
Si tu bosses sur un site WordPress pour un client et que tu veux garder le contrôle sur ce qu'il peut ajouter, c'est absolument essentiel. Le répertoire de blocs, c'est cool en soi, mais en vrai, ça permet à n'importe qui d'ajouter des blocs externes en un clic.
T'imagines le bordel ? Un client installe un bloc douteux, ça casse le design, pire encore, ça ouvre une faille de sécurité.
Et qui doit débugger tout ça ? Toi.
Alors autant prévenir plutôt que guérir.
C'est quoi ce foutu répertoire de blocs ?
Depuis WordPress 5.5, l'éditeur Gutenberg intègre un "répertoire de blocs" qui permet d'installer des blocs directement depuis l'interface d'édition, sans passer par l'admin des plugins.
Sur le papier, ça a du sens pour rendre WordPress plus modulaire et flexible. Sauf que dans les faits, ça expose ton site à plein de problèmes :
- Des blocs mal codés qui ralentissent le site
- Des conflits entre blocs et plugins
- Des failles de sécurité
- Une perte totale de cohérence graphique
Bref, si tu veux garder la main, il faut bloquer ça direct.
1. Couper l'affichage du répertoire de blocs
Ajoute ce bout de code dans functions.php
de ton thème actif :
add_filter('block_editor_settings_all', function ($settings) {
$settings['enableBlockDirectory'] = false;
return $settings;
});
2. Bloquer les suggestions de blocs via l'API REST
WordPress va chercher des blocs via son API pour te suggérer des trucs. On va empêcher ça.
Ajoute ce code à ton fichier functions.php
:
add_filter('plugins_api', function ($result, $action, $args) {
if ($action === 'query_plugins' && !empty($args->block)) {
return new WP_Error('block_directory_disabled', __('Le répertoire de blocs est désactivé sur ce site.'));
}
return $result;
}, 10, 3);
3. Vérifier que tout marche
- Ouvre l'éditeur de blocs (Gutenberg). Assure-toi que tu es bien sur une page ou un article où tu peux tester l'ajout de blocs.
- Tape le nom d'un bloc qui n'est pas installé. Essaye de chercher un bloc exotique, comme "QR Code Generator" ou autre.
- Observe le résultat. Avant, WordPress aurait affiché des suggestions de blocs disponibles sur le répertoire officiel. Maintenant, si tout fonctionne bien, il ne doit rien proposer en dehors des blocs déjà installés.
- Teste sur plusieurs utilisateurs. Si ton client a un rôle autre qu'administrateur, vérifie qu'il ne voit pas non plus ces suggestions.
Si tout ça est bon, félicitations, tu as cleané ton site !
4. Rendre le blocage permanent avec un mu-plugin
Si tu veux que ce soit bloqué pour de bon, déplaçons tout ce code dans un mu-plugin. Comme par créer un fichier disable-block-directory.php
dans wp-content/mu-plugins/
et mets-y ceci :
<?php
/**
* Plugin Name: Bloquer le répertoire de blocs
* Description: Empêche l'ajout de blocs via le répertoire WordPress.
*/
add_filter('block_editor_settings_all', function ($settings) {
$settings['enableBlockDirectory'] = false;
return $settings;
});
add_filter('plugins_api', function ($result, $action, $args) {
if ($action === 'query_plugins' && !empty($args->block)) {
return new WP_Error('block_directory_disabled', __('Le répertoire de blocs est désactivé sur ce site.'));
}
return $result;
}, 10, 3);
Avec ça dans le dossier mu-plugins
, c'est actif direct, sans besoin d'aller dans l'admin.
Et voilà, ton site est clean et sous contrôle ! Plus de risques que tes clients installent des blocs chelous et flinguent la mise en page. Simple, rapide, efficace.