it-swarm-es.com

¿Cuál es el uso del filtro map_meta_cap?

¿Cuál es el uso de map_meta_cap filter? 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é está destinado exactamente? Si es posible, proporcione un ejemplo de código de ejemplo de su uso correcto.

19
rsman

Este filtro le permite extender la función map_meta_cap() . Esta función es llamada por WP_User->has_cap() para convertir una 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 meta 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 este usuario debe tener que permitir la edición de la publicación (si la publicación fue escrita por otra persona y publicada, devolvería array('edit_others_posts', 'edit_published_posts'), por lo que el usuario debe tener ambas capacidades para continuar).

Agregar 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 concentrarse 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, al usar 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 si lo desea, puede personalizarlo para que gire completamente el sistema de capacidades.

24
Jan Fabry

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:

http://justintadlock.com/archives/2010/07/10/meta-capabilities-for-custom-post-types

6
sorich87

Este es el filtro de la función map_meta_cap(). A partir 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 el autor de la publicación entonces can_do_this_stuff y can_do_that_stuff_also ), verificando varias condiciones si es necesario.

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

¿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.

2
Rarst