2017-11-16 5 views
1

まずは私はワードプレスの学習者です。だから私のコードが愚かに見える場合は申し訳ありません!ワードプレス:カスタムロールを持つユーザーはwp-adminにアクセスできない

カスタムユーザーロールを使用してカスタムテーマを作成しました。私はプラグインを開発していません。

私のfucntions.phpファイルで、私はUserロールを作成するために次のコードを書いています。このロールに割り当てられたユーザーには、管理者にログインするだけで自分のプロフィールページにアクセスすることができるようになっています。

add_action('init', 'yrc_cst_register_role_customer_service_rep'); 

/** 
* Register new user role 
*/ 

function yrc_cst_register_role_customer_service_rep() { 

    $wp_roles = new WP_Roles(); 

    $wp_roles->remove_role('subscriber'); 
    $wp_roles->remove_role('editor'); 
    $wp_roles->remove_role('contributor'); 
    $wp_roles->remove_role('author'); 

    $service_rep_caps = array(
     'read'    => false, 
     'create_posts'  => false, 
     'edit_posts'  => false, 
     'edit_others_posts' => false, 
     'publish_posts'  => false, 
     'manage_categories' => false, 
     'manage_options' => false, 
    ); 

    add_role('customer_service', __('Customer Service'), $service_rep_caps); 
} 

このポータルでは他の役割は必要ないため、管理者以外のすべての役割を削除しました。管理者は、唯一のカスタマーサービス役割を持つユーザーを作成します。

システムにサードパーティのプラグインがインストールされていません。

カスタムロールを持つユーザーは、正常に動作しているカスタムログインページを通じてシステムにログインできます。プロファイルページにアクセスしようとするたびに、次のエラーメッセージが表示されます。

申し訳ありませんが、このページにアクセスすることはできません。

'edit_profile' => trueはありますか?

私は間違ったことをしているに違いないが、私の限られた知識はこれを理解するには不十分である。どんな提案も高く評価されます。

+0

私は彼が「読み取り」=>真 – Stender

+0

をneadsと思いますが、その後、再びコメント - 加入者は、デフォルトでは、唯一の右、彼らのプロフィールページにアクセスすることを許可されているの? – Stender

+0

ええ - 役割は唯一その場合 – Stender

答えて

1

を持っていることに注意してください

これは、サブスクライバの役割の機能を複製し、その役割を作成する必要があります。

add_action('init', 'CreatecloneRoleSubscriber'); 

function CreatecloneRoleSubscriber() 
{ 
    global $wp_roles; 
    if (! isset($wp_roles)) 
     $wp_roles = new WP_Roles(); 

    $sub = $wp_roles->get_role('Subscriber'); 
    //Adding a 'new_role' with all subscriber caps 
    $wp_roles->add_role('customer_service', 'Customer Service', $sub->capabilities); 
} 

EDIT:問題の読み取り議論は

+0

クローン - 素晴らしいもの! –

0

ちょうどあなたの場合 trueにmanage_optionsを変更しかし、trueにmanage_optionsを可能にすることにより、これらのユーザーはあなたが好きそれを行うことができるかもしれないダッシュボードの他の部分へのアクセスだけでなく

$service_rep_caps = array(
    'read'    => false, 
    'create_posts'  => false, 
    'edit_posts'  => false, 
    'edit_others_posts' => false, 
    'publish_posts'  => false, 
    'manage_categories' => false, 
    'manage_options' => true, // Most plugins and pages check for manage_options for checking access level to allow access to pages and settings. 
); 
+0

権利がありますが、この役割を持つユーザーには要求されていません。 –

関連する問題