2017-03-15 21 views
1

我有一個網站,我希望某些用戶具有管理員的角色類型,但仍然無法訪問管理區域(不要問!)這是更多的臨時修復程序,而我的新網站正在構建。如何在WordPress中阻止管理區域,除非用戶名是X(不是用戶角色)?

我現在正在使用此代碼阻止每個人到管理區域,除非角色類型是管理員 - 但我怎麼能阻止管理員,除非用戶名是'馬克'例如。

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

剛剛對此進行了測試,添加了新用戶,角色類型爲admin,使用的用戶名不是mack,仍然可以訪問管理員區域? –

4

使用wp_get_current_user()

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

感謝您的幫助,真的很感激!我的PHP仍然很生疏!如何修改上面的現有代碼以包含您的調整!非常感謝 –

相關問題