Qual é o uso do filtro map_meta_cap?

16

Qual é o uso do filtro map_meta_cap? Este filtro não está documentado em nenhum lugar. Não tenho uma ideia clara do que poderia ser:

Usado para mapear as permissões do usuário para operações nas postagens.

O que exatamente isso significa? Se possível, por favor, dê um exemplo de código de amostra de seu uso correto.

    
por rsman 12.09.2010 / 07:52

3 respostas

22

Este filtro permite-lhe alargar a função map_meta_cap() . Esta função é chamada por WP_User->has_cap() para converter a < em> meta capacidade para um ou mais recursos primitivos .

Por exemplo, você quer saber se o usuário atual deve ter permissão para editar a postagem atual, a capacidade meta edit_post . Isso depende de alguns fatores: o usuário é o autor do post? O post já foi publicado? A postagem está marcada como particular? Os recursos primitivos são edit_posts , edit_published_posts , edit_others_posts e edit_private_posts : você pode atribuí-los a funções de usuário . map_meta_cap() verifica o autor e o status da postagem e retorna o conjunto correto de recursos primitivos que esse usuário deve ter para permitir a edição da postagem (se a postagem for escrita por outra pessoa e publicada, seria return array('edit_others_posts', 'edit_published_posts') , então o usuário deve ter os dois recursos para continuar).

Adicionar essa ideia de meta capacidades e recursos primitivos permite que você mantenha a base WP_User livre de conhecimento de postagens e pós status e o que quer que seja e apenas focar em capacidades. A conversão real está em uma função externa, map_meta_cap() .

O filtro map_meta_cap permite estender a funcionalidade, por exemplo, ao usar postagens personalizadas. Acredito que o suporte básico será fornecido se você definir o argumento capabilities de register_post_type , mas o artigo mencionado por Justin Tadlock e Prospress plugin fornecer exemplos completos disso. Mas você pode personalizá-lo para transformar completamente o sistema de recursos, se desejar.

    
por Jan Fabry 05.10.2010 / 15:25
5

Esse filtro pode ser usado para mapear recursos meta para tipos de postagem personalizados. Há um bom exemplo de código neste artigo:

enlace

    
por sorich87 03.10.2010 / 10:01
2

Este é o filtro da função map_meta_cap() . A partir da descrição, esta função parece escrever a capacidade geral ( can_do_stuff ) passada para mais específica (se o autor da postagem então can_do_this_stuff e can_do_that_stuff_also ), verificando vários condições, se necessário.

Infelizmente, isso não está documentado no Codex e não consigo encontrar uma única chamada direta dessa função na origem do WP 3.0.1.

Você encontrou o uso dessa função ou deseja usá-la para algo? Eu suponho que, como não parece ser usado, provavelmente existem maneiras novas e melhores para essa funcionalidade.

    
por Rarst 12.09.2010 / 10:11