Deseja organizar os uploads de mídia por usuário no WordPress?
Se você administra um site com vários autores, talvez queira impedir que os usuários acessem os arquivos de mídia de outras pessoas. Dessa forma, você pode garantir que os autores não excluam acidentalmente as imagens uns dos outros.
Neste artigo, mostraremos como organizar os uploads de mídia por usuários no WordPress.
Por que restringir o acesso do autor a uploads de mídia?
Se você tiver um blog WordPress com vários autores, seus autores poderão fazer upload de muitas imagens diferentes. Isso pode dificultar que um autor encontre a imagem certa, ou ele pode excluir ou editar o arquivo de mídia de outra pessoa por acidente.
Isso pode causar todos os tipos de problemas, incluindo baixa produtividade, muito trabalho extra para os administradores e editores do site e um fluxo de trabalho editorial complicado.
Esse acesso ilimitado também pode ser um problema de privacidade. Por exemplo, se você estiver trabalhando em um novo produto ou em uma ideia de postagem de blog, outros autores poderão ver imagens confidenciais na biblioteca de mídia antes de você fazer um anúncio público.
Se você tiver um site de associação do WordPress, os colaboradores poderão até mesmo acessar arquivos de mídia premium por meio da biblioteca de mídia.
Dito isso, vamos dar uma olhada em como restringir quem pode ver os uploads de mídia dentro da área de administração do WordPress. Basta usar os links rápidos abaixo para ir direto ao método que você deseja usar:
Método 1: Organização de uploads de mídia por usuários com um plug-in (rápido e fácil)
A maneira mais fácil de restringir o acesso aos uploads de mídia é usar o plug-in Frontier Restrict Access. Esse plug-in gratuito verifica se um usuário tem a permissão edit_others_posts
, que lhe permite editar as postagens de outro usuário.
Por padrão, o WordPress concede esse recurso a todos que têm a função de administrador ou editor do site. Se quiser alterar isso, você pode adicionar ou remover recursos das funções de usuário no WordPress.
Se o usuário não tiver a permissão edit_others_posts
, esse plug-in o impedirá de acessar os arquivos de outros usuários na biblioteca de mídia do WordPress. Isso permite organizar os uploads de mídia por usuários sem restringir o acesso de administradores e editores.
Esse plug-in funciona imediatamente e não há configurações a serem definidas, portanto, basta instalar e ativar o plug-in Frontier Restrict Access. Para obter mais detalhes, consulte nosso guia sobre como instalar um plug-in do WordPress.
Observação: você pode notar que o plug-in não foi testado com as versões mais recentes do WordPress. Dito isso, nós mesmos o testamos e ele funciona bem para este tutorial.
Você pode ler nosso artigo sobre se deve usar plug-ins não testados do WordPress se tiver alguma dúvida. Se você encontrar plug-ins mais recentes que funcionem melhor para essa finalidade, informe-nos nos comentários.
Método 2: organização de uploads de mídia por usuários com código (mais personalizável)
O primeiro método é rápido e fácil. Dito isso, ele pode ser bastante limitado, pois só é possível impedir que usuários sem a permissão edit_others_posts
(administradores e editores do site) acessem os arquivos de mídia de outros usuários.
Se você for administrador de um site, talvez queira limitar o acesso de todos os usuários (exceto você) aos arquivos de mídia de outras pessoas.
Nesse caso, você pode adicionar um código personalizado ao seu blog do WordPress. Mostraremos dois trechos de código: um que restringe o acesso a arquivos de mídia para usuários não administradores e outro para usuários sem a permissão edit_others_posts
.
Geralmente, os guias pedem que você adicione código personalizado ao seu tema do WordPress. No entanto, isso não é recomendado, pois erros simples ou de digitação em seu código podem causar erros comuns do WordPress ou até mesmo quebrar completamente seu site.
É por isso que recomendamos o WPCode.
O WPCode é o melhor plug-in de snippets de código usado por mais de 1 milhão de sites do WordPress. Ele facilita a adição de código personalizado no WordPress sem a necessidade de editar o arquivo functions.php.
A primeira coisa que você precisa fazer é instalar e ativar o plug-in gratuito WPCode. Para obter mais detalhes, consulte nosso guia passo a passo sobre como instalar um plug-in do WordPress.
Após a ativação, vá para Code Snippets ” Add Snippet.
Aqui, você verá todos os snippets prontos que pode adicionar ao seu site. Eles incluem snippets que permitem desativar completamente os comentários do WordPress, fazer upload de arquivos que o WordPress não suporta por padrão e muito mais.
Basta passar o mouse sobre “Add Your Custom Code” e selecionar “Use snippet”.
Para começar, digite um título para o snippet de código personalizado. Pode ser qualquer coisa que ajude você a identificar o snippet no painel do WordPress.
Depois disso, abra a lista suspensa “Code Type” (Tipo de código) e selecione “PHP Snippet”.
Na área “Code Preview” (Visualização de código), você pode colar um dos seguintes trechos de código:
Opção 1: Restringir o acesso a arquivos de mídia para usuários não administradores do WordPress
add_filter( 'ajax_query_attachments_args', 'user_show_attachments' );
function user_show_attachments( $query ) {
$user_id = get_current_user_id();
// Check if the current user is not an administrator
if ( $user_id && !current_user_can('administrator') ) {
$query['author'] = $user_id;
}
return $query;
}
Opção 2: Restringir o acesso a arquivos de mídia para usuários do WordPress sem permissões de edição de posts
add_filter( 'ajax_query_attachments_args', 'user_show_attachments' );
function user_show_attachments( $query ) {
$user_id = get_current_user_id();
// Checks if the current user is logged in (i.e., $user_id is not 0) and does not have the capabilities to activate plugins or edit others' posts.
if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
') ) {
$query['author'] = $user_id;
}
return $query;
}
Em seguida, basta rolar até a seção “Inserção”. O WPCode pode adicionar seu código em diferentes locais, como depois de cada publicação, somente no front-end ou somente no administrador.
Para usar o código PHP personalizado em todo o seu site WordPress, clique em “Auto Insert” (Inserção automática) se ainda não estiver selecionado. Em seguida, abra o menu suspenso “Location” (Localização) e escolha “Run Everywhere” (Executar em todos os lugares).
Depois disso, você está pronto para rolar até a parte superior da tela e clicar no botão de alternância “Inactive” (Inativo) para que ele mude para “Active” (Ativo).
Por fim, clique em “Save Snippet” (Salvar snippet) para ativar o snippet PHP.
Agora, os usuários só terão acesso aos arquivos que carregarem na biblioteca de mídia do WordPress.
Esperamos que este artigo tenha ajudado a organizar melhor os uploads de mídia pelos usuários em seu site do WordPress. Em seguida, confira nosso guia definitivo de segurança do WordPress ou veja nossa seleção especializada dos melhores plug-ins de formulário de contato para WordPress.
Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Joshua Owolabi
I really enjoy all your tutorials kudos to you.
Although I am unable to use to build something due to lack of resources but you are WELDONE
WPBeginner Support
Glad our tutorials are helpful
Administrador
Teddu
I would like users to be able to upload content, and once its approved go onto a new page. the user could then edit it once it is there.
Think, similar how airbnb let users upload photos and descriptions of their holiday homes, and it appears in a page.
do you know a plug in for this functionality?
WPBeginner Staff
It is certainly possible but can potentially open up your site to spam, malicious hack attempts. Please see out article on how to allow users to submit posts in WordPress. You can allow users to upload media without registration.
fredtgorski
The one thing I would really(!) love to see on media library would be the ability to search media per post and/or date of upload. Every time I need to reuse an image I uploaded for a very old post, it is painfull to find it again. Sometimes I simply give up and reupload it…
agsm
sir , i want to design a wordpress page where user will upload some documents with following feilds (name,e-mail,title,summary and file upload) after submit , it should appear in dashboard and when admin approve it should be show on page (all listing of upload details which has been approved by admin ) , its possible,
thanks in advance!!!
Michel
https://wordpress.org/plugins/wp-user-frontend/
Jan
Do you also have a solution to enable visitors (non-logged-in users) to upload content?
Tony Franco
Very nice! Thank you!!