2012-04-18 47 views
7

Tôi đang làm việc trên một hệ thống cho temps/part-timers bằng cách sử dụng Wordpress. Để đi về này tôi thực hiện một bài tùy chỉnh loại NHÂN VIÊN mới và tôi cần 2 tương ứng với người dùng AGENT và KHÁCH HÀNG cho nó:Cách thiết lập Vai trò Người dùng đơn giản cho Loại Bài đăng Tùy chỉnh Wordpress

dùng
  • Các AGENT có thể tạochỉnh sửa NHÂN VIÊN riêng của mình (s), nhưng không chỉnh sửa (các) NGƯỜI LAO ĐỘNG của (các) ĐẠI LÝ khác.
  • Các bài NHÂN VIÊN có thể xemnhận xét về bởi tất cả các đại lý, khách hàng và công chúng nói chung,
  • mà cũng ngụ ý rằng người dùng khách hàng có thể chỉ xem tất cả bài viết EMPLOYEE.
  • Người dùng CUSTOMER cần được phân biệt với công chúng vì một khi họ thuê một NHÂN VIÊN, hệ thống cần liên kết chúng với NGƯỜI LÀM VIỆC, do đó, nhu cầu KHÁCH HÀNG phải là người dùng đã đăng nhập.
  • Cuối cùng, cả người dùng AGENT và CUSTOMER đều có thể tạo/chỉnh sửa tiểu sử người dùng vani Wordpress của chính họ và đăng nhập bằng kết hợp tên người dùng/mật khẩu của họ.

Làm cách nào để thực hiện sắp xếp này? Tài liệu trực tuyến về người dùng và khả năng khiến tôi kéo tóc và runnin quanh vòng tròn. Cho đến nay đây là đăng ký tùy chỉnh loại bài viết của tôi, và tôi hiện đang thiết lập các hộp meta để biết khác cho bài kiểu này:

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') 
    ) 
); 

tôi đã đi qua Members Plugin Justin Tadlock của (rất phổ biến trên Google và các diễn đàn), nhưng tôi đã hy vọng các yêu cầu của tôi đủ đơn giản để không sử dụng plugin nữa. Nó cũng hơi quá quấn quanh đầu tôi.

Trợ giúp. Cảm ơn trước.

+0

Tôi muốn tư vấn cho một plugin, nó đủ phức tạp – janw

+0

** Lưu ý đối với mods **: câu hỏi này sẽ phù hợp hơn với WPSE. –

Trả lời

4

Điều này thực sự không quá khó khăn.

Bước đầu tiên là tạo một loại khả năng tùy chỉnh tùy chỉnh tương ứng với loại bài đăng tùy chỉnh của bạn, thông qua thông số 'capability_type' được chuyển đến register_post_type(). Bạn đang sử dụng mặc định, ví dụ:

'capability_type' => 'post', 

Set rằng một cái gì đó khác, có lẽ 'employee', và theo Codex, cũng đặt 'map_meta_cap' để true:

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

Bước tiếp theo là thêm khả năng liên quan đến người dùng tùy chỉnh của bạn, thông qua thông số $capabilities được chuyển đến cuộc gọi của bạn tới add_role(). Đối với vai trò người dùng "nhân viên", bạn sẽ muốn thêm edit_employee et al (edit_, delete_, v.v.) và cho vai trò người dùng "đại lý", bạn sẽ muốn bao gồm edit_employee et al, cùng với edit_others_employee et al .

+0

cảm ơn @Chip! Tôi sẽ làm việc này và cung cấp cho bạn một đầu lên một khi tôi nhận được nó để làm việc hoặc tôi chạy vào một rào cản. cảm ơn một lần nữa –

+0

hi @Chip đang làm việc trên đoạn mã này một lần nữa. câu hỏi 'vô dụng', xin lỗi nếu quý vị: D vậy tôi đặt lệnh 'add_role()' ở đâu?trong 'functions.php' của tôi sau khi tạo kiểu bài viết? tia –

+0

Tôi khuyên bạn nên đặt nó vào cùng một cuộc gọi lại bao gồm cuộc gọi hàm 'register_post_type()' của bạn. –

Các vấn đề liên quan