Este filtro le permite extender la map_meta_cap()función . Se llama aWP_User->has_cap() esta función para convertir una metacapacidad en una o más capacidades primitivas .
Por ejemplo, desea saber si el usuario actual debería poder editar la publicación actual, la edit_postmetacapacidad . Esto depende de algunos factores: ¿es el usuario el autor de la publicación? ¿La publicación ya está publicada? ¿La publicación está marcada como privada? Las capacidades primitivas son edit_posts, edit_published_posts, edit_others_postsy edit_private_posts: se puede asignar a estos roles de usuario . map_meta_cap()comprueba 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, volvería array('edit_others_posts', 'edit_published_posts'), por lo que el usuario debe tener ambas capacidades para Seguir).
Agregar esta idea de capacidades meta y capacidades primitivas le permite mantener la WP_Userclase base libre de conocimiento de publicaciones y estados de publicaciones y lo que sea, y solo enfocarse en las capacidades. La conversión real se encuentra en una función externa, map_meta_cap().
El filtro lemap_meta_cap permite ampliar la funcionalidad, por ejemplo, cuando utiliza publicaciones personalizadas. Creo que se proporciona soporte básico si establece el capabilitiesargumento de register_post_type, pero el artículo mencionado por Justin Tadlock y el complemento Prospress proporcionan ejemplos completos de esto. Pero puede personalizarlo para cambiar completamente el sistema de capacidades, si lo desea.