A cosa serve il filtro map_meta_cap?


20

A cosa serve il map_meta_capfiltro? Questo filtro non è documentato da nessuna parte. Ho un'idea poco chiara di cosa potrebbe essere:

Utilizzato per mappare le autorizzazioni dell'utente alle operazioni sui post.

A cosa serve esattamente? Se possibile, fornisci alcuni esempi di codice del suo corretto utilizzo.

Risposte:


25

Questo filtro consente di estendere la map_meta_cap()funzione . Questa funzione viene chiamataWP_User->has_cap() per convertire una meta-capacità in una o più capacità primitive .

Ad esempio, vuoi sapere se all'utente corrente dovrebbe essere consentito modificare il post corrente, la edit_postmeta funzionalità . Questo dipende da alcuni fattori: l'utente è l'autore del post? Il post è già stato pubblicato? Il post è contrassegnato come privato? Le capacità primitive sono edit_posts, edit_published_posts, edit_others_postse edit_private_posts: è possibile assegnare questi ai ruoli utente . map_meta_cap()controlla l'autore e lo stato del post e restituisce il set corretto di funzionalità primitive che questo utente deve avere per consentire la modifica del post (se il post è stato scritto da qualcun altro e pubblicato, tornerà array('edit_others_posts', 'edit_published_posts'), quindi l'utente deve avere entrambe le funzionalità per Continua).

L'aggiunta di questa idea di meta-capacità e capacità primitive consente di mantenere la WP_Userclasse base libera dalla conoscenza dei post e degli stati dei post e di qualsiasi altra cosa e concentrarsi solo sulle funzionalità. La conversione effettivo è in una funzione esterna, map_meta_cap().

Il filtromap_meta_cap consente di estendere la funzionalità, ad esempio quando si utilizzano post personalizzati. Credo che venga fornito il supporto di base se si imposta l' capabilitiesargomento register_post_type, ma l'articolo citato da Justin Tadlock e plugin Prospress fornisce esempi completi di questo. Ma puoi personalizzarlo per capovolgere completamente il sistema di funzionalità, se lo desideri.



2

Questo è il filtro della funzione map_meta_cap(). Dalla descrizione questa funzione sembra scrivere capacità generali ( can_do_stuff ) passate a più specifiche (se l'autore del post è allora can_do_this_stuff e can_do_that_stuff_also ), verificando varie condizioni se necessario.

Sfortunatamente non è documentato in Codex e non riesco a trovare una singola chiamata diretta di questa funzione nel sorgente WP 3.0.1.

Hai riscontrato l'utilizzo di questa funzione o desideri utilizzarla per qualcosa? Presumo che non sembri essere usato, probabilmente ci sono modi più nuovi e migliori per questa funzionalità.


Questo autore di plug-in sembra utilizzarlo: github.com/Prospress/Prospress/blob/master/pp-posts/…
rsman
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.