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

Cómo restringir el acceso a la biblioteca de medios a las subidas propias del usuario en WordPress

Por defecto, WordPress permite a los autores ver todas las imágenes de la biblioteca de medios de su sitio. Esto puede ser problemático si invitas a muchos autores. En este artículo, le mostraremos cómo restringir el acceso a la biblioteca de medios de WordPress a las subidas de los propios usuarios.

Restrict WordPress media library access to user's own uploads

¿Por qué restringir el acceso a la biblioteca de medios a las subidas propias del usuario?

WordPress permite a los autores ver todos los archivos de la biblioteca de medios. También pueden ver las imágenes subidas por un administrador, editor u otros autores.

Para obtener más información, consulte nuestro artículo sobre los perfiles y permisos de usuario de WordPress.

Digamos que usted está creando una nueva entrada para anunciar un próximo producto o trato. Los autores y autores invitados de tu sitio web podrán ver las imágenes que subas a ese artículo en la biblioteca de medios.

Tus subidas también serán visibles en el mensaje / ventana emergente “Añadir medios” que los usuarios ven cuando añaden imágenes a sus propios artículos.

Para muchos sitios web, esto puede no ser un gran problema. Sin embargo, si tiene un sitio web con varios autores, es posible que desee cambiar esta opción.

Veamos cómo restringir fácilmente el acceso a la biblioteca de medios a las subidas de los propios usuarios.

Método 1: Restringir el acceso a la biblioteca de medios mediante un plugin

Este método es más sencillo y se recomienda para todos los usuarios.

Lo primero que debe hacer es instalar y activar el plugin Restringir Acceso a la Biblioteca de Medios. Para más detalles, consulte nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.

Este plugin funciona de forma inmediata, y no hay ajustes que configurar.

Al activarlo, filtra la consulta de la biblioteca de medios para ver si el usuario actual es administrador o editor. Si el perfil del usuario no coincide con ninguno de ellos, entonces solo mostrará las subidas del propio usuario.

Los usuarios con el perfil de administrador o editor podrán ver todas las subidas de medios como de costumbre.

Método 2: Restringir manualmente el acceso a la biblioteca de medios

El primer método funcionaría para la mayoría de los sitios web ya que limita el acceso a la biblioteca de medios y permite solo al administrador y al editor ver todas las subidas de medios.

Sin embargo, si desea añadir un perfil de usuario personalizado o simplemente no desea utilizar un plugin, puede probar este método. Utiliza el mismo código que el plugin, pero podrás modificarlo para adaptarlo a tus necesidades.

Este método requiere que añadas código a tus archivos de WordPress. Si no lo ha hecho antes, eche un vistazo a nuestra guía sobre cómo copiar y pegar código en WordPress.

Tendrás que añadir el siguiente código a tu archivo functions. php de WordPress o a un plugin específico del sitio.

// 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;
} 

Este código utiliza la función current_user_can para comprobar si el usuario tiene capacidad para activar plugins o editar entradas de otros usuarios. Si no es así, cambia la consulta utilizada para mostrar los archivos de medios y la limita al ID del usuario.

Esperamos que este artículo le haya ayudado a aprender cómo restringir el acceso a la biblioteca de medios de WordPress a las subidas del propio usuario. También puede limitar los autores a sus propias entradas en el área de administrador de WordPress.

Si te ha gustado este artículo, entonces por favor suscríbete a nuestro canal de YouTube para tutoriales en vídeo de WordPress. También puedes encontrarnos en Twitter y Facebook.

Descargo: Nuestro contenido está apoyado por los lectores. Esto significa que si hace clic en algunos de nuestros enlaces, podemos ganar una comisión. Vea cómo se financia WPBeginner , por qué es importante, y cómo puede apoyarnos. Aquí está nuestro proceso 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.

El último kit de herramientas de WordPress

Obtenga acceso GRATUITO a nuestro kit de herramientas - una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Reader Interactions

13 comentariosDeja una respuesta

  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?

Deja tu comentario

Gracias por elegir dejar un comentario. Tenga en cuenta que todos los comentarios son moderados de acuerdo con nuestros política de comentarios, y su dirección de correo electrónico NO será publicada. Por favor, NO utilice palabras clave en el campo de nombre. Tengamos una conversación personal y significativa.