Was ist die Verwendung von map_meta_cap Filter?

20

Was ist die Verwendung von map_meta_capFilter? Dieser Filter ist nirgendwo dokumentiert. Ich habe eine unklare Vorstellung davon, woran es liegen könnte:

Dient zum Zuordnen der Berechtigungen des Benutzers zu Vorgängen für Posts.

Wofür genau ist es gedacht? Wenn möglich, geben Sie bitte ein Codebeispiel für die richtige Verwendung.

rsman
quelle

Antworten:

25

Mit diesem Filter können Sie erweitern die map_meta_cap()Funktion . Diese Funktion wird durch genanntWP_User->has_cap() eine konvertieren Meta - Fähigkeit zu einem oder mehreren primitiven Fähigkeiten .

Beispielsweise möchten Sie wissen, ob der aktuelle Benutzer den aktuellen Beitrag bearbeiten darf, die edit_postMetafunktion . Dies hängt von einigen Faktoren ab: Ist der Benutzer der Autor des Beitrags? Ist der Beitrag bereits veröffentlicht? Ist der Beitrag als privat markiert? Die primitiven Fähigkeiten sind edit_posts, edit_published_posts, edit_others_postsund edit_private_posts: Sie diese zuweisen können Benutzerrollen . map_meta_cap()Überprüft den Autor und den Status des Posts und gibt die korrekten primitiven Funktionen zurück, die dieser Benutzer benötigen muss, um den Post bearbeiten array('edit_others_posts', 'edit_published_posts')zu können fortsetzen).

Durch das Hinzufügen dieser Idee von Metafunktionen und primitiven Funktionen können Sie die Basisklasse WP_Uservom Wissen über Posts und Post-Status und was auch immer frei halten und sich nur auf Funktionen konzentrieren. Die eigentliche Umrechnung erfolgt in einer externen Funktion map_meta_cap(),.

Mit dem Filtermap_meta_cap können Sie die Funktionalität erweitern, z. B. wenn Sie benutzerdefinierte Posts verwenden. Ich glaube, dass grundlegende Unterstützung bereitgestellt wird, wenn Sie das capabilitiesArgument von angebenregister_post_type , aber der erwähnte Artikel von Justin Tadlock und das Prospress-Plugin bieten vollständige Beispiele dafür. Sie können es jedoch anpassen, um das Capabilities-System auf Wunsch vollständig umzustellen.

Jan Fabry
quelle
2

Dies ist ein Filter der Funktion map_meta_cap(). Aus der Beschreibung geht hervor, dass diese Funktion allgemeine Funktionen ( can_do_stuff ) ausgibt, die an bestimmte weitergegeben wurden (wenn der Autor des Beitrags dann can_do_this_stuff und can_do_that_stuff_stuff ), und bei Bedarf verschiedene Bedingungen überprüft.

Leider ist es nicht im Codex dokumentiert und ich kann keinen einzigen direkten Aufruf dieser Funktion in der WP 3.0.1-Quelle finden.

Ist Ihnen die Verwendung dieser Funktion begegnet oder möchten Sie sie für etwas verwenden? Ich nehme an, da es nicht verwendet zu werden scheint, gibt es wahrscheinlich neuere und bessere Möglichkeiten für diese Funktionalität.

Rarst
quelle
Dieser Plug-in-Autor scheint es zu verwenden: github.com/Prospress/Prospress/blob/master/pp-posts/…
rsman