WordPress : Restreindre l’accès à un champ de widget spécifique en fonction du rôle de l’utilisateur

Publié par Jean-Michel le

WordPress : restreindre des zones de widgets à certains rôles utilisateur 🔒

  • 1· Objectif — Empêcher certains utilisateurs (ex : éditeurs) d’accéder ou de glisser des widgets dans des zones spécifiques de l’admin.
  • 2· Solution simple — Cacher la zone de widget via un <style> en admin si l’utilisateur n’est pas administrateur.
  • 3· Code prêt à l’emploi :
if ( ! current_user_can( 'administrator' ) ) {
  add_action( 'admin_print_styles-widgets.php', function() {
    echo '<style> .sidebar-widgets-ab-ads { display: none !important; } </style>';
  });
}
  • 4· Étape clé — Ajoutez une classe CSS identifiable (ex : ab-ads) à vos zones de widget lors de leur déclaration avec register_sidebar().
  • 5· Astuce bonus — Vous pouvez aussi filtrer les widgets **eux-mêmes** avec unregister_widget() selon les rôles si besoin.

➡️ En ajoutant du CSS ciblé dans l’admin, vous limitez l’accès visuel et fonctionnel aux zones sensibles de votre interface widgets.

Je cherche un moyen de restreindre la possibilité de faire glisser certains widgets vers des zones de widgets spécifiques dans l’éditeur de widgets.

Par exemple, je voudrais restreindre le champ widget « annonces » pour qu’il ne soit disponible que pour les administrateurs. Je serais très heureux si je pouvais le faire en désactivant la possibilité de glisser-déposer dans ces champs.

Quelqu’un a une idée?

Solution n°1 trouvée

J’ai fini par ajouter la classe ‘ab-ads’ à toutes mes zones de widgets.

if ( !is_super_admin() ) {
  add_action('admin_print_styles-widgets.php', function() {
      echo '<style type="text/css">div.sidebar-widgets-ab-ads { display:none; }</style>';
  });
}

De cette façon, je les masque simplement pour tous ceux qui ne sont pas administrateurs.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *