Você está procurando uma maneira de restringir os usuários a ver apenas os itens da biblioteca de mídia que eles carregam? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para restringir os usuários a ver apenas os itens da biblioteca de mídia que eles carregam 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 my_files_only( $wp_query ) {
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/upload.php' ) !== false ) {
if ( !current_user_can( 'level_5' ) ) {
global $current_user;
$wp_query->set( 'author', $current_user->id );
}
}
}
add_filter('parse_query', 'my_files_only' );
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: 7 melhores serviços de VPN para usuários do WordPress e como criar um formulário de doação para WordPress.
percebemos que, embora esses scripts funcionem no WordPress web, a versão Android/móvel da biblioteca de mídia ainda é visualizável por todos
uma pequena alteração que fiz no código para fazê-lo funcionar no front-end na minha página de perfil
//se ( false !== strpos( $_SERVER[ ‘REQUEST_URI’ ], ‘/wp-admin/upload.php’ ) ) { if ($wp_query->query_vars[‘post_type’]==”attachment”){
desta forma está funcionando corretamente.
Obrigado Prasanna, registrei uma conta no Disqus apenas para te agradecer.
Eu também
[…] uma pesquisa no Google me fez encontrar muitas referências (aqui, e aqui, por exemplo ) a isso […]
Funcionou! (WP 3.8.1) Obrigado!
olá, obrigado pelo código. muito útil!
no entanto, outros usuários ainda conseguem ver os anexos se tiverem um link direto. há alguma maneira de impedir isso? como apenas o proprietário da mídia (e o administrador) podem ver os anexos. outros usuários ou o público não podem vê-los.
Obrigado.
Coloquei esse código… mas tenho um contador errado para postagens de mídia…
O usuário atual não tem postagens de mídia… enquanto tem Todos (15) | Imagens (15) | Não anexados (2)
quero mostrar a contagem para o usuário atual.. não para todos….
Apenas ocultei todos os números de contagem com CSS: subsubsub .count {display: none; }
Çok teşekkür ederim – Obrigado
Muito obrigado por isso…. O Role Scoper estava mexendo com outro plugin e essa era a única funcionalidade que eu queria era que as imagens fossem limitadas… Obrigado por atualizá-lo para funcionar com a nova biblioteca de mídia, funciona perfeitamente.
Alguém sabe como restringir o usuário também quando ele faz upload de um arquivo da inserção ou edição de post? Na verdade, quando eu clico no botão Adicionar Mídia, o pop-up me mostra a aba Biblioteca de Mídia, com todas as mídias enviadas por todos os usuários. Estou usando o WP 3.5.1.
Obrigado!
Veja minha resposta para designlabCPH acima. Insira esta função no seu arquivo functions, e a biblioteca de mídia será restrita apenas aos arquivos dos usuários.
Não funcionou para mim 🙁 Eu quero que usuários que não são administradores possam ver apenas seus próprios arquivos, também quando estão criando posts, apenas ver suas próprias imagens quando adicionam imagens destacadas, etc.
Não funcionou para mim 🙁 Eu quero que usuários que não são administradores possam ver apenas seus próprios arquivos, também quando estão criando posts, apenas ver suas próprias imagens quando adicionam imagens destacadas, etc.
Não funcionou para mim 🙁 Eu quero que usuários que não são administradores possam ver apenas seus próprios arquivos, também quando estão criando posts, apenas ver suas próprias imagens quando adicionam imagens destacadas, etc.
Não funcionou para mim 🙁 Eu quero que usuários que não são administradores possam ver apenas seus próprios arquivos, também quando estão criando posts, apenas ver suas próprias imagens quando adicionam imagens destacadas, etc.
Funcionou agora! Muito obrigado!
Eu usei o plugin Role Scoper. Eu estava procurando resolver isso o dia todo. O Role Scoper permitirá que apenas o usuário logado veja seu próprio conteúdo e seus próprios posts por padrão. Você pode mudar isso se quiser também. Biblioteca de Mídia Privada para Autores 😉
existe uma maneira de configurar esta linha de código para restringir a biblioteca de mídia apenas para contribuidores? Dessa forma, os contribuidores só podem ver a mídia que carregam e os administradores podem ver tudo.
existe uma maneira de programar esta linha de código para aplicar isso apenas a níveis de associação específicos? (ou seja, contribuidores só podem ver seus uploads de mídia, mas administradores podem ver tudo)
Usando WP 3.3.1 e isso não está funcionando. Existe uma atualização para o código? Obrigado.
Veja minha resposta acima. Postei uma função que funcionará com o novo gerenciador de mídia (WP 3.5+).
Tenho uma pergunta, Kevin, como restringir um contribuinte de fazer upload de mídia?
Olá Rian,
Na linha 3 você verá “level_5” nesta página do WordPress, que tem detalhes sobre quais são os níveis de usuário, você pode simplesmente alterar esse nível. http://codex.wordpress.org/User_Levels#User_Level_5_2
eu não notei que o papel padrão para contribuinte é não poder fazer upload de nenhuma mídia. eu só tentei isso ontem à noite.. haha.
Muito obrigado Kevin! 🙂
Sem problema, a qualquer momento,
Obrigado Kevin, é muito útil, mas como corrigir ‘número total de arquivos’?
Fico feliz em saber que você gostou do snippet! Bem, o total ainda está correto, já que os arquivos existem, embora eu entenda seu ponto. Vou dar uma olhada nisso em um futuro próximo para ver se consigo postar um snippet.
obrigado pelo post. era exatamente o que eu estava procurando.
Fiz uma pequena alteração >> também adicione a linha de código ao arquivo media-upload.php. isso também filtrará as imagens /mediafiles acima do editor wysiwyg.
presta
Oi Sheila,
Onde/O que você postou em termos de código no arquivo media-upload.php? Estou recebendo um erro ao colar o código. Agradeço antecipadamente!
Encontrei um problema, a biblioteca de mídia ainda mostra o conteúdo completo na janela pop-up de inserção de mídia do post. (o mesmo que outros modelos de página também)
no entanto, adicionei get global $post, e adicionei outra condição para posts.
‘/wp-admin/media-upload.php?post_id=’.$post->ID.’&type=image&tab=library’
mas não funcionou..
Eu corrigi isso adicionando uma segunda cláusula
“|| strpos( $_SERVER[ ‘REQUEST_URI’ ], ‘/wp-admin/media-upload.php’ ) !== false”
Como diabos você faz isso funcionar no WP 3.5?
Tentei de tudo (acredito eu, embora eu não seja um programador PHP), incluindo adicionar sua solução acima – e simplesmente não consigo fazer funcionar.
Preciso que apenas os administradores possam ver toda a mídia na janela pop-up da biblioteca, e todos os outros (incluindo editores) possam ver apenas suas respectivas imagens…. Você se importaria de explicar para mim? 🙂
Use o Role Scoper se você ainda não resolveu isso, cara. Ele resolve exatamente esse problema. É padrão quando você instala o plugin. Tanto a Biblioteca de Mídia quanto os posts. FYI
Passei horas hoje apenas para corrigir esse problema de upload de usuários, e descobri que é o único código que funciona. Obrigado!
Você tem que mudar alguns parâmetros para que isso funcione com o novo gerenciador de mídia.
Você pode usar esta função (note que criei uma capacidade “manage_media_library”. Somente se o usuário tiver isso, ele verá arquivos diferentes dos seus):
add_action(‘pre_get_posts’,’ml_restrict_media_library’);
function ml_restrict_media_library( $wp_query_obj ) {
global $current_user, $pagenow;
if( !is_a( $current_user, ‘WP_User’)
return;
if( ‘admin-ajax.php’ != $pagenow || $_REQUEST[‘action’] != ‘query-attachments’ )
return;
if( !current_user_can(‘manage_media_library’)
$wp_query_obj->set(‘author’, $current_user->ID );
return;
}
Eu estava procurando exatamente por isso: ‘admin-ajax.php’ != $pagenow || $_REQUEST[‘action’] != ‘query-attachments’
muito obrigado!
Onde você colocou isso?
como um novo plugin! bom, isso funciona para mim!
ótima solução de código Patrick – resolveu meu problema rapidamente – eu gostaria de ter encontrado isso em dezembro. : ) obrigado!
Eu tentei seu código em um plugin, diretamente no function.php, mas não funcionou. Eu tenho o Wordpress 3.5.1 e quero usá-lo no front-end com o botão add media da função wp_editor.
Eu tentei no wp-admin, mas também não funcionou.
Você tem alguma ideia do porquê não está funcionando ???
Usei isso, muitos parabéns para você!
Este trecho é muito útil para o meu site de vários blogueiros. Você deveria transformá-lo em um plugin para WP! obrigado =)
Legal, fico feliz que você goste do trecho, não tenho certeza se vale a pena adicioná-lo como um plugin, embora possa ser configurado como um.
Você deveria, estou tendo dificuldade em encontrar isso na piscina de plugins e acabei desistindo e procurando recursos externos, o que me fez chegar aqui. Adoro seu blog, trechos diretos e focados. Aprendendo muito por aqui!
Você iluminou meu dia, Obrigado Chard! =)
Sem problemas, Fico feliz que você goste do site – visite regularmente, postamos diariamente!