Você quer restringir autores a ver apenas posts que eles criaram no painel de administração? Embora provavelmente exista um plugin para isso, criamos um snippet de código rápido que você pode usar para restringir autores a ver apenas posts que eles criaram no WordPress.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
function posts_for_current_author($query) {
global $pagenow;
if( 'edit.php' != $pagenow || !$query->is_admin )
return $query;
if( !current_user_can( 'manage_options' ) ) {
global $user_ID;
$query->set('author', $user_ID );
}
return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');
Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 15 melhores ferramentas de marketing de conteúdo e como criar um formulário de contato no WordPress.
Como faço para que ele mostre apenas posts de autores atuais, mas também mostre posts de outros autores que são definidos manualmente pelo ID, no meu caso é o ID de usuário 3, eu quero que todos os autores vejam
Olá Patrick, uma solução simples é criar uma página protegida por senha para seus autores e exibir postagens de todos os autores nesta página.
Olá Chard, como se isso for usado para uma página apenas, não para posts, obrigado, preciso do seu feedback em breve
Uma página no WordPress é um tipo de post. Dito isso, você pode precisar mudar 'edit.php' na linha 4 para 'edit.php?post_type=page'.
você pode me ajudar com o código para restringir autores a verem apenas a categoria que eles criaram.
Obrigado
existe alguma maneira de restringir o autor de um comentário a ser o único que pode ver o comentário? Eu sei que parece um absurdo – não pergunte 🙂 Eu realmente preciso disso! Obrigado antecipadamente.
Muito obrigado Kevin!!
Sem problemas, fico feliz em ter ajudado.
Além disso, isso funciona apenas para posts ou também para páginas?
Usando WP 3.3.1 e isso não está funcionando. Existe uma atualização para o código? Obrigado.
Ernest, eu ousaria adivinhar que você substituiria:
if( !current_user_can( ‘manage_options’ ) ) {
por:
if( !current_user_can( ‘level_1’ ) ) {
Qualquer pessoa com uma função superior a Colaborador seria capaz de ver todos os posts.
Olá, este é um ótimo snippet! Como posso alterar o código para ter esse efeito para a função de usuário “Colaboradores”?
Isso funcionou como descrito. Mas, quando o removi do functions.php, não consegui ver nenhum post quando logado como qualquer pessoa que não fosse um administrador. ???
Desculpe. Parece que pode ter sido um problema com outra coisa. Parece funcionar bem agora.
Olá Chad Legal, fico feliz em ver que você conseguiu resolver as coisas.
Ótimo trecho, obrigado. Você sabe de alguma forma de restringir a visibilidade dos títulos do submenu por ID de usuário? Ou seja, o autor de uma postagem que é de custom_post_type A, só vê o submenu para custom_post_type A enquanto os outros submenus de custom_post_type ficam ocultos?
Olá Craig, fico feliz que você goste do trecho. Em relação ao submenu, este trecho deve resolver isso para você. http://wpsnipp.com/index.php/functions-php/remove-sub-menu-dashboard-items/
Obrigado por isso 😉
Funciona para todas as classes de usuários (Autores, Editores etc.)?
Este trecho exibirá apenas as postagens criadas por esse usuário, devendo funcionar para todos. Portanto, se você tiver um usuário que não criou nenhuma postagem, ele não deverá ver nada na visualização de administração de postagens.