Unterschied zwischen Rollen- und Metafunktionen
Das wäre besser, die vergleichen , um zu fragen , Role
mit Capabilities
, nicht nur Meta capabilities
, sondern als eine einfache Antwort:
A Role
definiert eine Reihe von Aufgaben, die ein Benutzer ausführen darf, dem die Rolle zugewiesen wurde.
Capabilities
sind zugeordnet Roles
Unterschied zwischen Meta und primitiven Fähigkeiten?
Meta-Funktionen
edit_post
,, read_post
und delete_post
sollen sein, Meta Capabilities
weil sie vom Kontext abhängen, zum Beispiel dem Beitrag, der bearbeitet / gelesen / gelöscht wird. Das macht keinen Sinn, wenn Sie sagen, ein Benutzer hat edit_post
Fähigkeiten, weil jemand Sie fragen wird: Er / sie kann welchen Beitrag bearbeiten?
Primitive Fähigkeiten
Hierbei handelt es sich um Funktionen edit_posts
, die nicht von einem Kontext abhängen und dem Benutzer eigen sind. Wenn jemand über edit_posts
Kapazitäten verfügt , kann er Beiträge bearbeiten.
Wann wird der Filter map_meta_cap () verwendet?
Wenn Sie einen neuen Beitragstyp mit registrieren register_post_type
, haben Sie eine Option, für capability_type
die angegeben wird, welche Funktionen ähnlich sind. Dort können Sie einfach sagen post
, was bedeutet, dass Ihre Fähigkeiten denen des post
Post-Typs ähnlich sind .
Wenn Sie weitere Anpassungen benötigen, können Sie beispielsweise book
oder array( 'book', 'books' )
(dasselbe) beispielsweise die folgenden Funktionen verwenden:
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',
)
Bei Verwendung capability_type
als Array, z. B. Array ('Geschichte', 'Geschichten'), wird das erste Element für die Singularfähigkeiten und das zweite Arrayelement für die Pluralfähigkeiten verwendet.
Die map_meta_cap()
Funktion wird aufgerufen WP_User->has_cap()
, um eine Meta-Fähigkeit in eine oder mehrere primitive Fähigkeiten umzuwandeln.
Es gibt auch einen map_meta_cap
Parameter in register_post_type
, der dasselbe bei der Registrierung von post_type tut.