¿Cuál es el uso del filtro map_meta_cap?

16

¿Cuál es el uso del filtro map_meta_cap? Este filtro no está documentado en ninguna parte. Tengo una idea poco clara de lo que podría ser:

Se utiliza para asignar los permisos del usuario a las operaciones en las publicaciones.

¿Para qué se entiende exactamente? Si es posible, proporcione un ejemplo de código de ejemplo de su uso correcto.

    
pregunta rsman 12.09.2010 - 07:52

3 respuestas

22

Este filtro le permite extender la función map_meta_cap() . Esta función es llamada por WP_User->has_cap() para convertir un < em> meta capacidad a una o más capacidades primitivas .

Por ejemplo, desea saber si el usuario actual debería tener permiso para editar la publicación actual, la capacidad meta edit_post . Esto depende de algunos factores: ¿el usuario es el autor de la publicación? ¿Ya está publicado el post? ¿El post está marcado como privado? Las capacidades primitivas son edit_posts , edit_published_posts , edit_others_posts y edit_private_posts : puede asignarlas a roles de usuario . map_meta_cap() verifica el autor y el estado de la publicación y devuelve el conjunto correcto de capacidades primitivas que este usuario debe tener para permitir la edición de la publicación (si la publicación está escrita por otra persona y publicada, sería devuelve array('edit_others_posts', 'edit_published_posts') , por lo que el usuario debe tener ambas capacidades para continuar).

La adición de esta idea de capacidades meta y capacidades primitivas le permite mantener la clase base WP_User libre del conocimiento de publicaciones y estados de publicaciones y lo que sea, y solo enfocar en las capacidades. La conversión real está en una función externa, map_meta_cap() .

El filtro map_meta_cap le permite ampliar La funcionalidad, por ejemplo cuando se utilizan publicaciones personalizadas. Creo que se proporciona soporte básico si establece el argumento capabilities de register_post_type , pero el artículo mencionado por Justin Tadlock y Prospress plugin proporciona ejemplos completos de esto. Pero puede personalizarlo para que gire completamente el sistema de capacidades, si lo desea.

    
respondido por el Jan Fabry 05.10.2010 - 15:25
5

Este filtro se puede usar para asignar capacidades de metadatos para tipos de publicaciones personalizados. Hay un buen ejemplo de código en este artículo:

enlace

    
respondido por el sorich87 03.10.2010 - 10:01
2

Este es el filtro de la función map_meta_cap() . De la descripción, esta función parece escribir la capacidad general ( can_do_stuff ) que se pasa a ser más específica (si es el autor de la publicación, entonces can_do_this_stuff y can_do_that_stuff_also ), verificando varios condiciones si es necesario.

Lamentablemente, no está documentado en Codex y no puedo encontrar una sola llamada directa de esta función en la fuente WP 3.0.1.

¿Habías encontrado el uso de esta función o querías usarla para algo? Supongo que, como no parece que se use, probablemente haya nuevas y mejores formas para esta funcionalidad.

    
respondido por el Rarst 12.09.2010 - 10:11

Lea otras preguntas en las etiquetas