2012-04-18 11 views
7

私は、Wordpressを使用しているtemps/part-timer用のシステムで作業しています。これについて移動するには、私は新しいカスタムポストタイプのEMPLOYEEを作っていると私はそれのため2人のに対応するユーザエージェントと顧客が必要となります。Wordpressカスタムポストタイプの簡単なユーザーロールを設定する方法

  • AGENTのユーザーが編集自分のEMPLOYEE(複数可)を作成することができ、他のエージェントの従業員を編集することはできません。
  • EMPLOYEEポストはを表示することができ、顧客のユーザーのみビュー全従業員のポストができることを意味している
  • 、すべてのエージェント、顧客および一般大衆によってについてコメントしました。
  • 一般ユーザーと差別化する必要があるのは、EMPLOYEEを雇うと、システムはEMPLOYEEと関連付ける必要があり、したがって、顧客がサインインされたユーザーである必要があるからです。
  • 最後に、エージェントとお客様の両方のユーザーは独自のバニラワードプレスのユーザープロファイルを作成/編集し、ユーザー名とパスワードの組み合わせでログインできます。

この手配はどのように実行しますか?ユーザーと機能に関するオンラインドキュメントは、私の髪の毛を引っ張り、サークル内で動かしていました。これまでのところ、ここで私のカスタムポストタイプ登録はだ、と私は現在、このポストタイプのために他の情報のためのメタボックスを設定している:私はグーグルやフォーラムに(ジャスティンTadlockのMembersプラグイン間で非常に人気が来ている

register_post_type('employee', 
    array(
     'labels' => array(
      'name' => __('Employees','tdom'), 
      'singular_name' => __('Employee','tdom'), 
      'add_new' => __('Add New'), 
      'add_new_item' => __('Add New Employee'), 
      'edit' => __('Edit'), 
      'edit_item' => __('Edit Employee'), 
      'new_item' => __('New Employee'), 
      'view' => __('View Employee'), 
      'view_item' => __('View Employee'), 
      'search_items' => __('Search Employees'), 
      'not_found' => __('No Employees found'), 
      'not_found_in_trash' => __('No Employees found in Trash'), 
      'parent' => __('Parent Employee') 
     ), 
     'public' => true, 
     'show_ui' => true, 
     'query_var' => true, 
     'menu_icon' => get_stylesheet_directory_uri() . '/images/emp_icon.png', 
     'menu_position' => 4, 
     'capability_type' => 'post', 
     'hierarchical' => false, 
     'rewrite' => true, 
     'supports' => array('title', 'thumbnail', 'author') 
    ) 
); 

)しかし、私は私の要求がプラグインをもう使用しないほど簡単だと思っていました。私の頭を包み込むのはあまりにも多すぎます。

ヘルプ。前もって感謝します。

+0

私はプラグインに助言したいと思っていますが、それは十分に複雑です – janw

+0

**改造**への注意:この質問はWPSEに適しています。 –

答えて

4

これは本当にひどく難しいことではありません。

最初のステップは、register_post_type()に渡さ'capability_type'パラメータを経由して、カスタムポストタイプに対応するようにカスタム機能タイプを作成することです。

'capability_type' => 'employee', 
'map_meta_cap' => true, 

次のステップは、追加することです:あなたはデフォルトを使用している、すなわち:何か他のものに、おそらく'employee'、およびコーデックスごとに、また'map_meta_cap'trueに設定することを

'capability_type' => 'post', 

セットあなたのカスタムユーザーに関連する機能は、add_role()への呼び出しに渡された$capabilitiesパラメータを介して送信されます。 「従業員」ユーザー役割の場合はedit_employeeなど(edit_、delete_など)を追加し、「エージェント」ユーザー役割の場合はedit_employeeなどを含めてedit_others_employeeなど。

+0

@Chipに感謝します!私はこれに取り組んで、仕事に就くか、私がロードブロッキングに遭遇すると頭を上げます。再度ありがとう –

+0

こんにちは@Chipは私のコードのこの部分に再び取り組んでいます。だから私は 'add_role()'呼び出しをどこに置くのですか?私の 'functions.php'でポストタイプを作成した後で? tia –

+0

'register_post_type()'関数呼び出しを含む同じコールバックに入れることをお勧めします。 –

関連する問題