Unterschied zwischen Rollen- und Metafunktionen
Das wäre besser, die vergleichen , um zu fragen , Rolemit Capabilities, nicht nur Meta capabilities, sondern als eine einfache Antwort:
A Roledefiniert 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_postund delete_postsollen sein, Meta Capabilitiesweil 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_postFä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_postsKapazitä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_typedie angegeben wird, welche Funktionen ähnlich sind. Dort können Sie einfach sagen post, was bedeutet, dass Ihre Fähigkeiten denen des postPost-Typs ähnlich sind .
Wenn Sie weitere Anpassungen benötigen, können Sie beispielsweise bookoder 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_typeals 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_capParameter in register_post_type, der dasselbe bei der Registrierung von post_type tut.