web-dev-qa-db-ja.com

admin-ajax.phpを失うことなく、wp-adminからリダイレクトする

Is_admin条件式の中でwp_redirectを使用して、管理者以外のすべての人をWordpressの管理パネルから除外しようとしています。問題は、その非管理者がWordpressでajax呼び出しにファイル "admin-ajax.php"を使用できなくなった場合の副作用です。 Wordpressフォーラムの少数の人々 が、まったく同じ問題を最近抱えているようです。

誰かこれのための解決策がありますか?

5
Nick Budden

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