2017-03-15 5 views
1

私は一部のユーザーにadminの役割タイプを依頼しても、管理領域にアクセスできないようにしたいサイトがあります(質問しないでください)。これは、新しいサイトが構築されている間の一時的な修正です。WordPressでユーザー名がX(ユーザー役割ではない)以外の管理領域をブロックする方法は?

私は現在、このコードを使用して、すべてのユーザーを管理領域にブロックしています(ただし、ロールタイプがadminでない場合)。ユーザー名が「mack」以外の場合はどのように管理できますか?

add_action('init', 'blockusers_init'); 
function blockusers_init() { 
    if (is_admin() && ! current_user_can('administrator') && 
     ! (defined('DOING_AJAX') && DOING_AJAX)) { 
     wp_redirect(home_url()); 
     exit; 
    } 
} 

明らかに、ユーザーはサイトの他のすべてのフロントエンドページにアクセスする必要がありますが、管理領域ではありません。

答えて

0

あなたのコードで作業することなく、一時的な修正をしたい場合は、多分あなたはユーザー

https://srd.wordpress.org/plugins/disable-users/

を無効にすることができ@Ecuardoは、あなたがこのような何かを行うことができると言うそうでないと

add_action('init', 'blockusers_init'); 
function blockusers_init() { 
    $current_user = wp_get_current_user(); 
    if (is_admin() && ! current_user_can('administrator') && 
     ! (defined('DOING_AJAX') && DOING_AJAX) && $current_user->user_login != 'mack') { 
     wp_redirect(home_url()); 
     exit; 
    } 
} 
+0

これをテストして、新しいユーザーを追加しました.Mackとは異なるユーザー名を持つadminの役割タイプがあり、管理領域にアクセスできますか? –

4

使用wp_get_current_user()

$current_user = wp_get_current_user(); 
if ($current_user->user_login != 'mack') { 
    //It's not mack... 
} 
+0

本当にありがとうございます。私のPHPはまだかなり錆びている!上のコードを修正して、あなたの微調整を含めるにはどうすればいいですか?ありがとうございます –

関連する問題