Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Como restringir o acesso à biblioteca de mídia aos uploads do próprio usuário no WordPress

Por padrão, o WordPress permite que os autores vejam todas as imagens na biblioteca de mídia do seu site. Isso pode ser problemático se você convidar muitos autores convidados. Neste artigo, mostraremos como restringir o acesso à biblioteca de mídia do WordPress aos uploads do próprio usuário.

Restrict WordPress media library access to user's own uploads

Por que restringir o acesso à biblioteca de mídia aos uploads do próprio usuário?

O WordPress permite que os autores vejam todos os arquivos na biblioteca de mídia. Eles também podem ver as imagens carregadas por um administrador, editor ou outros autores.

Para saber mais, consulte nosso artigo sobre funções e permissões de usuário do WordPress.

Digamos que você esteja criando uma nova postagem para anunciar um produto ou uma oferta futura. Os autores e autores convidados em seu site poderão ver as imagens que você carregar para esse artigo na biblioteca de mídia.

Seus uploads também ficarão visíveis no pop-up “Add Media” (Adicionar mídia) que os usuários veem quando adicionam imagens aos seus próprios artigos.

Para muitos sites, isso pode não ser um grande problema. No entanto, se você administra um site com vários autores, talvez queira alterar isso.

Vamos dar uma olhada em como restringir facilmente o acesso à biblioteca de mídia aos uploads do próprio usuário.

Método 1: Restringir o acesso à biblioteca de mídia usando um plug-in

Esse método é mais fácil e é recomendado para todos os usuários.

A primeira coisa que você precisa fazer é instalar e ativar o plugin Restrict Media Library Access. Para obter mais detalhes, consulte nosso guia passo a passo sobre como instalar um plug-in do WordPress.

Esse plug-in funciona imediatamente e não há configurações a serem definidas.

Após a ativação, ele filtra a consulta da biblioteca de mídia para verificar se o usuário atual é um administrador ou editor. Se a função do usuário não corresponder a nenhuma delas, ele mostrará apenas os uploads do próprio usuário.

Os usuários com a função de administrador ou editor poderão ver todos os uploads de mídia normalmente.

Método 2: Restringir manualmente o acesso à biblioteca de mídia

O primeiro método funcionaria para a maioria dos sites, pois limita o acesso à biblioteca de mídia e permite que apenas o administrador e o editor visualizem todos os uploads de mídia.

No entanto, se você quiser adicionar uma função de usuário personalizada ou simplesmente não quiser usar um plug-in, poderá tentar este método. Ele usa o mesmo código usado pelo plug-in, mas você poderá modificá-lo para atender às suas necessidades.

Esse método exige que você adicione código aos seus arquivos do WordPress. Se você nunca fez isso antes, dê uma olhada no nosso guia sobre como copiar e colar código no WordPress.

Você precisará adicionar o seguinte código ao arquivo functions.php do WordPress ou a um plug-in específico do site.

// Limit media library access
 
add_filter( 'ajax_query_attachments_args', 'wpb_show_current_user_attachments' );

function wpb_show_current_user_attachments( $query ) {
    $user_id = get_current_user_id();
    if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
') ) {
        $query['author'] = $user_id;
    }
    return $query;
} 

Esse código usa a função current_user_can para verificar se o usuário tem a capacidade de ativar plug-ins ou editar as postagens de outros usuários. Se não tiver, ele altera a consulta usada para exibir arquivos de mídia e a limita ao ID do usuário.

Esperamos que este artigo o tenha ajudado a aprender como restringir o acesso à biblioteca de mídia do WordPress aos uploads do próprio usuário. Talvez você também queira limitar os autores às suas próprias publicações na área de administração do 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.

Divulgação: Nosso conteúdo é apoiado pelo leitor. Isso significa que, se você clicar em alguns de nossos links, poderemos receber uma comissão. Veja como o WPBeginner é financiado, por que isso é importante e como você pode nos apoiar. Aqui está nosso processo editorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

O kit de ferramentas definitivo WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Reader Interactions

13 ComentáriosDeixe uma resposta

  1. Noel Williams

    Anyone looking for an update might want to consider the following which takes care of the list and grid issues

    // For list view
    add_action( ‘pre_get_posts’, ‘wpb_show_current_user_attachments_list_view’ );
    function wpb_show_current_user_attachments_list_view( $query ) {
    if ( is_admin() && $query->is_main_query() && $query->get(‘post_type’) === ‘attachment’ ) {
    $user_id = get_current_user_id();
    if ( $user_id && !current_user_can(‘administrator’) ) {
    $query->set(‘author’, $user_id);
    }
    }
    }

    // For grid view
    add_filter( ‘ajax_query_attachments_args’, ‘wpb_show_current_user_attachments_grid_view’ );
    function wpb_show_current_user_attachments_grid_view( $query ) {
    $user_id = get_current_user_id();
    if ( $user_id && !current_user_can(‘administrator’) ) {
    $query[‘author’] = $user_id;
    }
    return $query;
    }

    • WPBeginner Support

      Thank you for sharing this :)

      Administrador

  2. Bruno

    The plugin works, but If you switch to ‘upload.php?mode=list’ it’s possible to see all medias again. It works only on the mode=grid

    • WPBeginner Support

      Thank you for sharing this information :)

      Administrador

  3. nathan

    Amazing ! Its working !

    But if using wordpress app installed from mobile, all users still can access whole media library. Any solutions?

    Your help is much appreciated !

    • WPBeginner Support

      We do not have a solution for the app at the moment but we will certainly keep an eye out.

      Administrador

  4. Alvaro Gomez

    Thank you for mentioning my plugin :)

    • WPBeginner Support

      Thank you for creating the plugin and placing it on the WordPress.org repo :)

      Administrador

  5. Daniel

    Am looking for away i can make user upload directly from their pc instead of going to media page

  6. kim

    This may not be the post I need to be asking this on but….

    What if you create a role for say, teacher. Is there a way or plugin that would filter so that one teacher can’t see another teacher media files? If that makes sense? :)

    Teacher-username1- media (only see username1 media files)
    Teacher-username2-media (only see username2 media files)

  7. Hugh

    Instead of:

    !current_user_can(‘activate_plugins’)
    &&
    !current_user_can(‘edit_others_posts’)

    USE:

    !current_user_can(‘administrator’)

    Because if for example you use the ‘User Role Editor’ plugin, you might want to allow the current user to be able to activate plugins AND/OR edit others posts.

    Just a thought, works for me :)

    Thanks for the post!

  8. Peter

    Nice post.

    And is there a way to disallow uploading files directly to the media library and force users (except admins) to use Add Media button within post/page editor?

Deixe uma resposta

Obrigado por deixar um comentário. Lembre-se de que todos os comentários são moderados de acordo com nossos política de comentários, e seu endereço de e-mail NÃO será publicado. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.