¿Cuál es la diferencia entre las funciones Role y Meta? Cuándo usar el filtro map_meta_cap ()


8

Me estoy confundiendo mucho sobre las siguientes cosas:

  1. diferencia entre las funciones Role y Meta,
  2. diferencia entre capacidades meta y primitivas,
  3. cuando usar map_meta_cap()filtro

Hubo muchas situaciones en las que agregué capacidades WP existentes o personalizadas a roles existentes o personalizados de WP, esperando que funcione de forma inmediata y la mayoría de las veces no lo hace.

Veo que la gente menciona sobre el map_meta_cap()filtro, pero no puedo encontrar una buena explicación de lo que realmente hace y cuándo debo usarlo y cuándo las capacidades funcionarán de inmediato.

Espero que tenga sentido.

Agradecería enormemente las explicaciones o enlaces a recursos que explican esto bien.

Gracias Dasha



Esta publicación de Justin Tadlock fue en última instancia la fuente de información de la que más me beneficié.
Justin Bell

¿Fue útil mi respuesta? Acepte y vote si fue útil
Pmpr

Respuestas:


3

diferencia entre las funciones de rol y meta

Eso sería mejor pedir al comparar Rolecon Capabilities, no sólo Meta capabilities, sino como una respuesta sencilla:

A Roledefine un conjunto de tareas que un usuario asignado al rol puede realizar.

Capabilities están asignados a Roles

diferencia entre capacidades meta y primitivas?

Meta capacidades

edit_post, read_posty delete_postse dice que son Meta Capabilitiesporque dependen del contexto, por ejemplo, la publicación que se está editando / leyendo / borrando. Eso no tiene sentido si dices que algún usuario tiene edit_postcapacidad, porque alguien te preguntará: ¿ puede editar qué publicación?

Capacidades primitivas

Estas son capacidades como las edit_postsque no dependen de ningún contexto y son intrínsecas para el usuario. Si alguien tiene edit_postscapacidad, puede editar publicaciones.

cuándo usar el filtro map_meta_cap ()?

Cuando registra un nuevo tipo de publicación usando register_post_type , tiene una opción para usar capability_typeque dice, ¿cuáles son las capacidades similares a? Allí solo puede decir post, lo que significa que sus capacidades son similares a las del posttipo de publicación.

Pero si necesita más personalización, puede decir booko array( 'book', 'books' )(lo mismo), por ejemplo, tener las siguientes capacidades:

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

Cuando se usa capability_typecomo una matriz, por ejemplo, matriz ('historia', 'historias'), el primer elemento se usará para las capacidades singulares y el segundo elemento de la matriz para las capacidades plurales.

Se map_meta_cap()llama WP_User->has_cap()a la función para convertir una metacapacidad en una o más capacidades primitivas.

También hay un map_meta_capparámetro en register_post_type, que hace lo mismo, en el registro post_type.


...If somebody has edit_posts capabality, she/he can edit posts...pero cual / cuyas publicaciones?
T.Todua
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.