logo blackCitron Noir
Contact

Bloquer l'accès au backoffice de Wordpress pour tous les utilisateurs sauf les administrateurs

Vous avez besoin d'un snippet Wordpress pour bloquer l'accès au backoffice de Wordpress pour tous les utilisateurs sauf les administrateurs ? Vous êtes au bon endroit !

SNIPPET

Copier le snippet
function ace_block_wp_admin() {
if ( is_admin() && ! current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
wp_safe_redirect( home_url() );
exit;
}
}
add_action( 'admin_init', 'ace_block_wp_admin' );

Que fait ce snippet ?

Ce snippet de code pour WordPress empêche les utilisateurs qui ne sont pas administrateurs d'accéder à l'interface d'administration de WordPress (c'est-à-dire le tableau de bord de WordPress généralement accessible via 'votre-site.com/wp-admin').

  • function ace_block_wp_admin() { ... } : Cette fonction définit la logique pour bloquer l'accès à l'administration de WordPress.

  • if ( is_admin() && ! current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { ... } : Cette condition vérifie si la page actuelle est une page d'administration (is_admin()), si l'utilisateur actuel n'est pas un administrateur (! current_user_can( 'administrator' )), et si la requête en cours n'est pas une requête AJAX (! ( defined( 'DOING_AJAX' ) && DOING_AJAX )). Les requêtes AJAX sont autorisées parce qu'elles sont souvent utilisées sur le frontend du site pour diverses fonctionnalités, et bloquer ces requêtes pourrait casser certaines fonctionnalités pour les utilisateurs non administrateurs.

  • wp_safe_redirect( home_url() ); exit; : Si toutes les conditions ci-dessus sont remplies (c'est-à-dire que nous sommes sur une page admin, l'utilisateur n'est pas un administrateur, et il ne s'agit pas d'une requête AJAX), alors l'utilisateur est redirigé en toute sécurité vers la page d'accueil du site et le script est arrêté (exit;).

  • add_action( 'admin_init', 'ace_block_wp_admin' ); : Ceci ajoute notre fonction ace_block_wp_admin à l'action WordPress 'admin_init'. Cela signifie que notre fonction sera exécutée chaque fois que WordPress initialise le tableau de bord ou une page d'administration.

En résumé, ce snippet empêche les utilisateurs non administrateurs d'accéder au tableau de bord de WordPress en les redirigeant vers la page d'accueil de leur site.

Qu'est-ce qu'un Snippet ?

Un snippet est un petit morceau de code réutilisable, utilisé pour accomplir une fonction spécifique ou un ensemble de fonctions sur un site web. Les snippets sont souvent utilisés pour simplifier et rationaliser le processus de codage en réduisant les tâches répétitives.

Comment créer un Snippet sur WordPress ?

Pour créer un snippet sur WordPress, vous pouvez utiliser le plugin "Code Snippets". Voici comment :

  1. Installez et activez le plugin "Code Snippets" dans votre tableau de bord WordPress.
  2. Allez à "Snippets" dans le menu de votre tableau de bord.
  3. Cliquez sur "Ajouter nouveau" pour créer un nouveau snippet.
  4. Donnez un titre à votre snippet et entrez le code dans la boîte prévue à cet effet.
  5. Vous pouvez également ajouter une description pour décrire ce que fait le snippet.
  6. Cliquez sur "Enregistrer les modifications" ou "Activer" pour sauvegarder et activer le snippet.

code snippet