Ich bin sehr verwirrt über die folgenden Dinge:
- Unterschied zwischen Rollen- und Metafunktionen,
- Unterschied zwischen Meta und primitiven Fähigkeiten,
- wann
map_meta_cap()
Filter zu verwenden .
Es gab viele Situationen, in denen ich vorhandene oder benutzerdefinierte WP-Funktionen zu vorhandenen oder benutzerdefinierten WP-Rollen hinzufügte und erwartete, dass dies sofort funktioniert und in den meisten Fällen nicht.
Ich sehe, dass die Leute über map_meta_cap()
Filter sprechen, aber ich kann keine gute Erklärung dafür finden, was es tatsächlich tut und wann ich es verwenden muss und wann die Funktionen sofort funktionieren.
Ich hoffe das ergibt Sinn.
Ich würde mich sehr über Erklärungen oder Links zu Ressourcen freuen, die dies gut erklären.
Danke, Dasha
capabilities
user-roles
Dashaluna
quelle
quelle
Antworten:
Das wäre besser, die vergleichen , um zu fragen ,
Role
mitCapabilities
, nicht nurMeta 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 zugeordnetRoles
Meta-Funktionen
edit_post
,,read_post
unddelete_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 hatedit_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 überedit_posts
Kapazitäten verfügt , kann er Beiträge bearbeiten.Wenn Sie einen neuen Beitragstyp mit registrieren
register_post_type
, haben Sie eine Option, fürcapability_type
die angegeben wird, welche Funktionen ähnlich sind. Dort können Sie einfach sagenpost
, was bedeutet, dass Ihre Fähigkeiten denen despost
Post-Typs ähnlich sind .Wenn Sie weitere Anpassungen benötigen, können Sie beispielsweise
book
oderarray( 'book', 'books' )
(dasselbe) beispielsweise die folgenden Funktionen verwenden: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 aufgerufenWP_User->has_cap()
, um eine Meta-Fähigkeit in eine oder mehrere primitive Fähigkeiten umzuwandeln.Es gibt auch einen
map_meta_cap
Parameter inregister_post_type
, der dasselbe bei der Registrierung von post_type tut.quelle
...If somebody has edit_posts capabality, she/he can edit posts...
aber welche / wessen Beiträge?