Sự khác biệt giữa các khả năng Vai trò và Meta; Khi nào nên sử dụng bộ lọc map_meta_cap ()


8

Tôi đang rất bối rối về những điều sau đây:

  1. sự khác biệt giữa các khả năng Vai trò và Meta,
  2. sự khác biệt giữa các khả năng của Meta và Primitive,
  3. khi nào sử dụng map_meta_cap()bộ lọc.

Có rất nhiều tình huống, trong đó tôi thêm các khả năng tùy chỉnh hoặc khả năng tùy chỉnh của WP vào các vai trò hiện có hoặc tùy chỉnh của WP, hy vọng nó sẽ hoạt động tốt và hầu hết các lần nó không hoạt động.

Tôi thấy rằng mọi người đề cập đến map_meta_cap()bộ lọc, nhưng tôi không thể tìm thấy một lời giải thích tốt về những gì nó thực sự làm và khi nào tôi phải sử dụng nó và khi nào các khả năng sẽ hoạt động tốt.

Tôi hy vọng điều đó đúng.

Tôi sẽ đánh giá rất cao những giải thích hoặc liên kết đến các tài nguyên giải thích điều này tốt.

Cảm ơn, Dasha



Bài đăng này của Justin Tadlock cuối cùng là nguồn thông tin tôi được hưởng lợi nhiều nhất.
Justin Bell

Câu trả lời của tôi có hữu ích cho bạn không?! Hãy chấp nhận và nâng cấp nếu nó hữu ích
Pmpr

Câu trả lời:


3

sự khác biệt giữa khả năng Vai trò và Meta

Điều đó sẽ tốt hơn để hỏi so sánh Rolevới Capabilities, không chỉ Meta capabilities, mà là một câu trả lời đơn giản:

A Rolexác định một tập hợp các tác vụ mà người dùng được gán vai trò được phép thực hiện.

Capabilities được giao cho Roles

sự khác biệt giữa khả năng của Meta và Primitive?

Khả năng meta

edit_post, read_postdelete_postđược cho là Meta Capabilitiesbởi vì chúng phụ thuộc vào ngữ cảnh, ví dụ bài đăng đang được chỉnh sửa / đọc / xóa. Điều đó thật vô nghĩa nếu bạn nói, một số người dùng có edit_postkhả năng, bởi vì ai đó sẽ hỏi bạn: cô ấy / anh ấy có thể chỉnh sửa bài đăng nào?

Khả năng nguyên thủy

Đây là những khả năng edit_postskhông phụ thuộc vào bất kỳ bối cảnh nào và là nội tại đối với người dùng. Nếu ai đó có edit_postscapabality, cô ấy / anh ấy có thể chỉnh sửa bài viết.

Khi nào nên sử dụng bộ lọc map_meta_cap ()?

Khi bạn đăng ký loại bài đăng mới bằng cách sử dụng register_post_type , bạn có một tùy chọn để sử dụng cho capability_typebiết, các khả năng này, tương tự như thế nào? Ở đó bạn chỉ có thể nói post, có nghĩa là khả năng của bạn tương tự như postloại bài đăng.

Bu nếu bạn cần tùy chỉnh nhiều hơn, bạn có thể nói bookhoặc array( 'book', 'books' )(tương tự), ví dụ, để có các khả năng sau:

capabilities' => array(
  'edit_post'          => 'edit_book', 
  'read_post'          => 'read_book', 
  'delete_post'        => 'delete_book', 
  'edit_posts'         => 'edit_books', 
  'edit_others_posts'  => 'edit_others_books', 
  'publish_posts'      => 'publish_books',       
  'read_private_posts' => 'read_private_books', 
  'create_posts'       => 'edit_books', 
)

Khi sử dụng capability_typenhư một mảng, ví dụ như mảng ('câu chuyện', 'câu chuyện'), phần tử đầu tiên sẽ được sử dụng cho các khả năng số ít và phần tử mảng thứ hai cho các khả năng số nhiều.

Các map_meta_cap()chức năng được gọi bằng WP_User->has_cap()để chuyển đổi một khả năng meta để một hoặc nguyên thủy hơn khả năng.

Ngoài ra còn có một map_meta_captham số register_post_type, thực hiện điều tương tự, khi đăng ký post_type.


...If somebody has edit_posts capabality, she/he can edit posts...nhưng bài viết nào / của ai?
T.Todua
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.