Permitir que o membro tenha acesso apenas ao tipo de postagem personalizado. Permissão para editar apenas seus próprios posts

25

OK, estou procurando a melhor maneira de atacar isso.

Estou muito à vontade com o PHP e fazendo tipos de postagem personalizados com campos meta personalizados no WordPress.

Aqui está o que estou procurando fazer:

  1. O usuário registra e está definido como     assinante por padrão.
  2. Solicitações de usuários do administrador para ter     permissão para o tipo de postagem personalizada.
  3. O administrador atribui o usuário a outro     nome da permissão como "Proprietário da loja".
  4. O usuário agora pode ver o tipo de postagem personalizado e pode fazer uma entrada para este post tipo.
  5. O usuário só pode ver e editar seus próprios postar.

Preciso de ajuda sobre o seguinte:

  1. Como criar um novo "Papel" chamado "Proprietário da loja",
  2. Como dar a permissão correta ao referido papel para ver apenas e ter acesso ao tipo de postagem personalizada.
  3. Permitir apenas que o usuário veja e edite seus próprios posts para esta postagem personalizada tipo.

Idealmente, eu preferiria que tudo isso fosse feito a partir do wp-admin, mas acredito que eu possa precisar criar um front-end para obter o controle finito que estou buscando.

Qualquer entrada é muito apreciada.

Atenciosamente

    
por Brady 12.04.2011 / 12:08
fonte

3 respostas

19

Use o plugin do Justin Tadlock " Membros ". Ele permite criar novas funções e editar funções existentes, além de adicionar recursos personalizados. Todo esse trabalho que você precisa fazer pode ser reduzido a alguns cliques.

Eu sei que você disse em seu comentário sobre a resposta do ZaMoose que você está 'querendo escrever a funcionalidade sozinho, então eu tenho controle total sobre tudo.' Isso está faltando todo o sentido do software de código aberto. Justin Tadlock lançou seu plugin para que você pudesse usá-lo com precisão para que você tivesse controle total sobre tudo.

Se você realmente realmente quiser reinventar a roda, potencialmente desperdiçando centenas de horas de seu próprio tempo, eu não posso pará-lo, mas você poderia pelo menos salvar o problema e usar o plugin do Tadlock para aprenda como fazer o que você quer.

Quando tiver um plug-in que faça o que você deseja, será necessário alterar o sinal 'map_meta_cap' para true e 'capability_type' na função de registro de tipo de postagem para que ele diga algo diferente de 'post ',' página 'ou qualquer outro tipo' reservado '. Em seguida, duplique todos os recursos relacionados a postagens (por exemplo, edit_posts , edit_others_posts , publish_posts , etc.), usando seu tipo de recurso em vez de postagens. Certifique-se de atribuir todas essas permissões aos administradores (você não poderá ver o tipo de postagem até que você faça isso) e, em seguida, crie sua função, imitando as habilidades da função "contribuidor" para o tipo de postagem.

Por exemplo, digamos que seu tipo de recurso seja foobars , você gostaria de dar aos proprietários de lojas os recursos edit_foobars , delete_foobars e read . Dessa forma, eles podem criar seus próprios foobars de rascunho e excluir esses rascunhos, mas, como eles não têm recursos de publish_foobars , eles precisam enviá-los para aprovação. Como eles não têm edit_published_foobars , todas as modificações em um foobar aprovado precisam ser aprovadas.

    
por John P Bloch 12.04.2011 / 16:49
fonte
16

O tipo de registro tem um parâmetro chamado "capacidades", então você pode ter, por exemplo

'capability' => __('organize_shop'),

enlace

Para criar um novo usuário / função / recurso, você pode usar add_role, add_cap, para um exemplo simples para você começar:

add_role( 'shop_owner', 'Shop Owner', array( 'edit_posts' => true, ) );
$wp_roles->add_cap( 'Shop Owner', 'organize_shop' );
$role->add_cap( 'organize_shop' );
    
por Wyck 12.04.2011 / 17:06
fonte
1

Já considerou olhar Formulários de Gravidade ou TDO Mini Forms para lidar com o envio de conteúdo real? Cada um deles tem uma funcionalidade que o ajudaria a lidar com o conteúdo enviado pelo usuário.

    
por ZaMoose 12.04.2011 / 15:37
fonte