Qual é a diferença entre os recursos de função e meta; Quando usar o filtro map_meta_cap ()

8

Estou ficando muito confuso com as seguintes coisas:

  1. diferença entre os recursos de função e meta,
  2. diferença entre os recursos Meta e Primitivo,
  3. quando usar o map_meta_cap()filtro.

Houve muitas situações em que adiciono recursos personalizados ou existentes do WP às funções existentes ou personalizadas do WP, esperando que funcione imediatamente e na maioria das vezes não.

Vejo que as pessoas mencionam o map_meta_cap()filtro, mas não consigo encontrar uma boa explicação sobre o que ele realmente faz, quando devo usá-lo e quando os recursos funcionarão imediatamente.

Espero que faça sentido.

Eu apreciaria imensamente explicações ou links para recursos que explicam isso bem.

Obrigado, Dasha

dashaluna
fonte
possível duplicata do filtro Qual é o uso do map_meta_cap?
precisa saber é o seguinte
Este post de Justin Tadlock foi a fonte de informações de que mais me beneficiei.
Justin Bell
Minha resposta foi útil para você ?! Por favor, aceite e vote se foi útil
Pmpr 28/03

Respostas:

3

diferença entre os recursos Função e Meta

Isso seria melhor perguntar a comparar Rolecom Capabilities, não apenas Meta capabilities, mas como uma resposta simples:

A Roledefine um conjunto de tarefas que um usuário atribuído à função tem permissão para executar.

Capabilities são atribuídos a Roles

diferença entre os recursos Meta e Primitivo?

Meta capacidades

edit_post, read_poste delete_postsão considerados Meta Capabilitiescomo dependentes do contexto, por exemplo, a postagem sendo editada / lida / excluída. Isso não faz sentido se você disser que algum usuário tem edit_postcapacidade, porque alguém lhe perguntará: ele / ela pode editar qual post?

Recursos primitivos

São recursos como os edit_postsque não dependem de nenhum contexto e são intrínsecos ao usuário. Se alguém tiver edit_postscapabalidade, poderá editar as postagens.

quando usar o filtro map_meta_cap ()?

Ao registrar um novo tipo de postagem usando register_post_type , você tem uma opção para a capability_typequal diz quais são os recursos semelhantes? Lá, você pode apenas dizer post, o que significa que seus recursos são semelhantes aos do posttipo de postagem.

Se você precisar de mais personalização, poderá dizer bookou array( 'book', 'books' )(o mesmo), por exemplo, ter os seguintes recursos:

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

Ao usar capability_typecomo uma matriz, por exemplo, matriz ('história', 'histórias'), o primeiro elemento será usado para os recursos singulares e o segundo elemento da matriz para os recursos plurais.

A map_meta_cap()função é chamada por WP_User->has_cap()para converter um meta-recurso em um ou mais recursos primitivos.

Também há um map_meta_capparâmetro em register_post_type, que faz a mesma coisa, no registro post_type.

Pmpr
fonte
...If somebody has edit_posts capabality, she/he can edit posts...mas quais / de quem?
T.Todua