2016-05-17 87 views
1

我想這樣做只有管理員(角色)允許登錄wp-admin沒有任何其他角色,其他用途像(編輯器,作者)是從前端登錄,它工作正常,但我只想管理員可以登錄通過wp-admin。只有管理員允許訪問wp-admin並登錄?

我已經使用最終成員插件進行前端登錄。 Ultimate Plugin link

另外我也使用下面的代碼訪問wp-admin只爲管理員(角色),但它不工作。

<?php 
function restrict_admin(){ 
//if not administrator, kill WordPress execution and provide a message 
    if(!current_user_can('administrator')) { 
     wp_die(__('You are not allowed to access this part of the site')); 
    } 
} 
add_action('admin_init', 'restrict_admin', 1); 
?> 
+0

你可以使用[此插件(https://wordpress.org/plugins/解決了這個除去儀表板存取換非管理員/)。安裝後,轉至設置>儀表板訪問權限,然後選擇「僅管理員」。 – vard

+0

這件事情正在工作,但我只需要管理員(角色)可以通過wp-admin登錄而不是編輯器,作者和訂戶用戶可以通過wp-admin登錄。 –

+0

如果您選擇正確的選項(僅限管理員),就像我告訴您的那樣,只有管理員可以訪問wp-admin ... – vard

回答

3

謝謝你們的幫助,我正在回答我自己的問題,希望這也能幫助其他人。

我已經提到這個鏈接https://developer.wordpress.org/reference/functions/wp_authenticate/

我與wp_authenticate

add_action('wp_authenticate' , 'check_custom_authentication'); 
    function check_custom_authentication ($username) { 

    $username; 
    $user = new WP_User($username); 
    $user_role_member=$user->roles[0]; 



    if($user_role_member == 'author' || $user_role_member == 'editor'){ 
     session_destroy(); 
     wp_redirect(home_url()); 
     exit; 
    } 

} 
0

試試這個

add_action('admin_init', 'redirect_non_admin_users'); 
/** 
* Redirect non-admin users to home page 
* 
* This function is attached to the 'admin_init' action hook. 
*/ 
function redirect_non_admin_users() { 
    if (is_admin() !== false) { 
     wp_redirect(home_url()); 
     exit; 
    } 
} 
+0

我也嘗試過這種方式,但它不工作。編輯,作者用戶仍然登錄。 –

+0

@sameersheikh我編輯過它,現在就試試。 –

+0

@hermnath仍然無法使用,仍然是作者和編輯的用戶登錄。 –

0
add_action('admin_init', 'redirect_none_admin'); 

function redirect_none_admin(){ 

if(is_admin() && current_user_can(activate_plugins)){ 
    //... 
}else{ 
    wp_redirect(home_url()); 
} 
} 

我測試的這一個,它的工作,我認爲這是簡單和容易 你可以找到Roles and Capabilities這裏

相關問題