web-dev-qa-db-fra.com

redirection sur wp-admin, sans perdre admin-ajax.php

J'essaie de garder tous les non-administrateurs hors du panneau d'administration Wordpress en utilisant un wp_redirect dans un conditionnel is_admin. Le problème est que cela a un effet secondaire si les non-administrateurs ne peuvent plus utiliser le fichier "admin-ajax.php" pour les appels ajax dans Wordpress. Il semble que quelques personnes sur les forums Wordpress rencontrent exactement le même problème récemment.

Quelqu'un aurait-il une solution à cela?

5
Nick Budden

Vérifiez la constante DOING_AJAX:

function my_admin_init(){
    if( !defined('DOING_AJAX') && !current_user_can('administrator') ){
        wp_redirect( home_url() );
        exit();
    }
}
add_action('admin_init','my_admin_init');
8
Milo