Qual è la differenza tra le funzionalità Role e Meta; Quando utilizzare il filtro map_meta_cap ()


8

Mi sto confondendo molto sulle seguenti cose:

  1. differenza tra le funzioni Ruolo e Meta,
  2. differenza tra capacità Meta e Primitive,
  3. quando usare il map_meta_cap()filtro.

Ci sono state molte situazioni, in cui ho aggiunto funzionalità WP esistenti o personalizzate a ruoli WP esistenti o personalizzati, aspettandomi che funzionasse immediatamente e la maggior parte delle volte no.

Vedo che le persone menzionano il map_meta_cap()filtro, ma non riesco a trovare una buona spiegazione di ciò che effettivamente fa e quando devo usarlo e quando le funzionalità funzioneranno immediatamente.

Spero che abbia un senso.

Gradirei enormemente spiegazioni o collegamenti a risorse che lo spiegano bene.

Grazie Dasha



Questo post di Justin Tadlock è stato in definitiva la fonte di informazioni di cui ho maggiormente beneficiato.
Justin Bell,

La mia risposta ti è stata utile ?! Per favore, accetta e vota se è stato utile
Pmpr

Risposte:


3

differenza tra le funzioni Ruolo e Meta

Sarebbe meglio chiedere il confronto Rolecon Capabilities, non solo Meta capabilities, ma come una risposta semplice:

A Roledefinisce una serie di attività a cui è assegnato un ruolo assegnato all'utente.

Capabilities sono assegnati a Roles

differenza tra le capacità Meta e Primitive?

Meta capacità

edit_post, read_poste delete_postsi dice Meta Capabilitiesche dipendono dal contesto, ad esempio il post in fase di modifica / lettura / eliminazione. Non ha senso se dici che qualche utente ha delle edit_postcapacità, perché qualcuno ti chiederà: può modificare quale post?

Capacità primitive

Queste sono funzionalità come quelle edit_postsche non dipendono da alcun contesto e sono intrinseche all'utente. Se qualcuno ha edit_postscapabalità, può modificare i post.

quando utilizzare il filtro map_meta_cap ()?

Quando registri un nuovo tipo di post utilizzando register_post_type , hai un'opzione da utilizzare per la capability_typequale dice, quali sono le funzionalità, simili a? Lì puoi solo dire post, il che significa che le tue capacità sono simili a quelle del posttipo di post.

Bu se hai bisogno di più personalizzazioni, potresti dire booko array( 'book', 'books' )(lo stesso), ad esempio, avere le seguenti funzionalità:

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

Quando si utilizza capability_typecome array, ad esempio array ('story', 'stories') il primo elemento verrà utilizzato per le capacità singolari e il secondo elemento array per le capacità plurali.

La map_meta_cap()funzione viene chiamata WP_User->has_cap()per convertire una meta-capacità in una o più capacità primitive.

C'è anche un map_meta_capparametro in register_post_type, che fa la stessa cosa, nella registrazione post_type.


...If somebody has edit_posts capabality, she/he can edit posts...ma quali / di chi post?
T.Todua,
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.