it-swarm.com.de

Was ist der Unterschied zwischen Rollen- und Metafunktionen? Wann wird der Filter map_meta_cap () verwendet?

Ich bin sehr verwirrt über die folgenden Dinge:

  1. unterschied zwischen Rollen- und Metafunktionen,
  2. unterschied zwischen Meta- und primitiven Fähigkeiten,
  3. wann soll der Filter map_meta_cap() verwendet werden?.

Es gab viele Situationen, in denen ich WP vorhandene oder benutzerdefinierte Funktionen entweder zu WP vorhandenen oder benutzerdefinierten Rollen hinzufügte. t.

Ich sehe, dass die Leute über map_meta_cap()-Filter sprechen, aber ich kann keine gute Erklärung 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

8
dashaluna

unterschied zwischen Rollen- und Metafunktionen

Das wäre besser, wenn Sie den Vergleich von Role mit Capabilities durchführen, nicht nur mit Meta capabilities, sondern als einfache Antwort:

Eine Role definiert eine Reihe von Aufgaben, die ein Benutzer, dem die Rolle zugewiesen wurde, ausführen darf.

Capabilities sind Roles zugeordnet

unterschied zwischen Meta- und primitiven Fähigkeiten?

Metafunktionen

edit_post, read_post und delete_post werden als Meta Capabilities bezeichnet, da sie vom Kontext abhängen, z. B. dem Beitrag, der bearbeitet/gelesen/gelöscht wird. Das macht keinen Sinn, wenn Sie sagen, dass ein Benutzer edit_post-fähig ist, weil jemand Sie fragt: er/sie kann welchen Beitrag bearbeiten?

Primitive Fähigkeiten

Hierbei handelt es sich um Funktionen wie edit_posts, die von keinem Kontext abhängen und für den Benutzer wesentlich sind. Wenn jemand edit_posts-fähig ist, kann er/sie Beiträge bearbeiten.

wann benutzt man map_meta_cap () filter?

Wenn Sie einen neuen Beitragstyp mit register_post_type registrieren, haben Sie die Möglichkeit, diesen für capability_type zu verwenden. Dort steht, wie lauten die ähnlichen Funktionen? Dort können Sie einfach post sagen, was bedeutet, dass Ihre Fähigkeiten denen von post nach dem Typ ähnlich sind.

Wenn Sie weitere Anpassungen benötigen, können Sie beispielsweise book oder array( 'book', 'books' ) (das Gleiche) sagen, um die folgenden Funktionen zu nutzen:

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

Wenn capability_type als Array verwendet wird, z. Array ('Geschichte', 'Geschichten') Das erste Element wird für die Singularfähigkeiten und das zweite Arrayelement für die Pluralfähigkeiten verwendet.

Die Funktion map_meta_cap() wird von WP_User->has_cap() aufgerufen, um eine Metafunktion in eine oder mehrere Grundfunktionen zu konvertieren.

Es gibt auch einen map_meta_cap-Parameter in register_post_type, der dasselbe bei der post_type-Registrierung ausführt.

3
Pmpr