Administrar un sitio de WordPress con varios autores es emocionante hasta que la biblioteca de medios se convierte en un caos. Hemos pasado por eso y sabemos lo frustrante que es cuando un autor elimina accidentalmente las imágenes de otro, causando caos justo antes de un gran lanzamiento.
Prevenir esto es más fácil de lo que crees. Puedes restringir qué autores ven qué archivos multimedia, devolviendo el orden a tu biblioteca.
Si bien WordPress no tiene una configuración integrada para esto, vamos a compartir el método simple que usamos en nuestros propios proyectos. Te ayudará a mantener tus archivos multimedia organizados y seguros.

¿Por qué restringir el acceso de los autores a las cargas de medios?
Si tienes un blog de WordPress con varios autores, entonces tus autores podrían subir muchas imágenes diferentes. Esto puede dificultar que un autor encuentre la imagen correcta, o podrían eliminar o editar accidentalmente el archivo multimedia de otra persona.
Esto puede causar todo tipo de problemas, incluida una baja productividad, mucho trabajo adicional para los administradores y editores del sitio, y un flujo de trabajo editorial complicado.
Este acceso ilimitado también puede ser una preocupación de privacidad. Por ejemplo, si estás trabajando en un nuevo producto o en una idea para una publicación de blog, otros autores podrían ver imágenes confidenciales en la biblioteca de medios antes de que hagas un anuncio público.
Si tienes un sitio de membresía de WordPress, los colaboradores incluso podrían acceder a archivos multimedia premium a través de la biblioteca de medios.
Dicho esto, veamos cómo restringir quién puede ver las cargas de medios dentro de tu área de administración de WordPress.
Cómo organizar las cargas de medios por usuarios con WPCode
Si bien algunos complementos han ofrecido esta función en el pasado, la forma más confiable y ligera de organizar las cargas de usuarios es agregando un simple fragmento de código. ¡No te preocupes, es más fácil de lo que parece!
Vamos a usar el complemento gratuito WPCode para hacer esto. Es la forma más segura y fácil de agregar código personalizado a tu sitio de WordPress sin editar los archivos de tu tema.
Te mostraremos dos fragmentos de código que puedes usar. El primer fragmento restringe el acceso a la biblioteca de medios para todos los usuarios que no sean administradores, y el segundo restringe el acceso para roles de usuario específicos como Autores y Colaboradores.
A menudo, las guías te pedirán que agregues código personalizado a tu tema de WordPress. Sin embargo, esto no se recomienda, ya que errores simples o errores tipográficos en tu código pueden causar errores comunes de WordPress o incluso romper tu sitio por completo.
Es por eso que recomendamos WPCode.
WPCode es el mejor plugin de fragmentos de código utilizado por más de 1 millón de sitios web de WordPress. Hace que sea fácil agregar código personalizado en WordPress sin tener que editar el archivo functions.php.
Consejo de experto: Aquí en WPBeginner, usamos WPCode para administrar todas las funciones personalizadas en nuestra cartera de sitios web. Permite a nuestro equipo de desarrollo agregar y solucionar problemas de código de forma segura sin tocar nunca los archivos del tema principal, lo que ahorra mucho tiempo y previene errores costosos.
Lo primero que debes hacer es instalar y activar el plugin gratuito WPCode. Para más detalles, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.
Tras la activación, dirígete a Snippets de código » Añadir Snippet.

Aquí, verás todos los fragmentos prefabricados que puedes agregar a tu sitio web. Estos incluyen fragmentos que te permiten deshabilitar completamente los comentarios de WordPress, desactivar las páginas de adjuntos de imágenes, y más.
Simplemente coloca el cursor sobre ‘Agregar tu código personalizado’ y luego selecciona ‘Usar fragmento’.

Para empezar, escribe un título para el fragmento de código personalizado. Puede ser cualquier cosa que te ayude a identificar el fragmento en el panel de WordPress.
Después de eso, abre el menú desplegable ‘Tipo de código’ y selecciona ‘Fragmento de PHP’.

En el área ‘Vista previa del código’, puedes pegar uno de los siguientes fragmentos de código:
Opción 1: Restringir el acceso a archivos multimedia para usuarios de WordPress que no son administradores
Este código verifica si el usuario actual no es un administrador. Si no es un administrador, filtra la biblioteca de medios para mostrar solo los archivos que el usuario ha subido él mismo.
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;
}
Esto significa que los usuarios normales solo pueden ver y administrar sus propios archivos multimedia, mientras que los administradores aún pueden ver y administrar todos los archivos.
Opción 2: Restringir el acceso a archivos multimedia para usuarios de WordPress sin permisos de edición de publicaciones
Este código es perfecto si deseas que los Editores y Administradores gestionen todos los archivos multimedia, mientras restringes a los Autores y Colaboradores solo a sus propias cargas.
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;
}
Funciona verificando si un usuario tiene el permiso edit_others_posts, que es una capacidad que los Editores tienen por defecto, pero los Autores no.
A continuación, simplemente desplázate hasta la sección ‘Inserción’. WPCode puede agregar tu código a diferentes ubicaciones, como después de cada publicación, solo en el front-end o solo en el administrador.
Para usar el código PHP personalizado en todo tu sitio web de WordPress, haz clic en ‘Insertar automáticamente’ si aún no está seleccionado. Luego, abre el menú desplegable ‘Ubicación’ y elige ‘Ejecutar en todas partes’.

Después de eso, estás listo para desplazarte hasta la parte superior de la pantalla y hacer clic en el interruptor ‘Inactivo’ para que cambie a ‘Activo’.
Finalmente, haz clic en ‘Guardar fragmento’ para que el fragmento de PHP se active.

Ahora, los usuarios solo tendrán acceso a los archivos que suban a la biblioteca de medios de WordPress.
Preguntas Frecuentes
Aquí tienes algunas de las preguntas más comunes que recibimos sobre la organización de cargas multimedia en WordPress.
¿Es seguro agregar código personalizado a mi sitio de WordPress?
Agregar código directamente al archivo functions.php de tu tema puede ser arriesgado. Un pequeño error tipográfico o un fallo podría causar problemas o incluso dejar tu sitio inaccesible.
Es por eso que recomendamos encarecidamente usar el plugin WPCode. Crea una capa segura para agregar fragmentos de código, para que no tengas que preocuparte por romper nada.
¿Esto afectará el rendimiento de mi sitio web?
En absoluto. El fragmento de código que proporcionamos es muy ligero y funciona de manera eficiente.
Solo agrega una verificación simple cuando un usuario accede a la biblioteca de medios, por lo que no ralentizará tu sitio web para tus visitantes.
¿Puedo restringir el acceso a los medios para roles de usuario específicos?
¡Sí, absolutamente! El código se puede personalizar fácilmente para dirigirse a un rol de usuario específico. Por ejemplo, si quisieras que esta restricción se aplique solo a los usuarios con el rol de 'Autor', podrías usar este fragmento en su lugar:
add_filter( 'ajax_query_attachments_args', 'author_only_show_attachments' );
function author_only_show_attachments( $query ) {
$user = wp_get_current_user();
// Check if the current user has the 'author' role
if ( in_array( 'author', (array) $user->roles ) ) {
$query['author'] = $user->ID;
}
return $query;
}
Aprende más formas de administrar archivos de WordPress
Además de restringir las cargas de medios en WordPress, también podrías consultar las guías a continuación para administrar mejor tus archivos:
- Cómo renombrar imágenes y archivos multimedia en WordPress
- Los Mejores Plugins de Dropbox para WordPress (Selección de Expertos)
- Cómo crear tamaños de imagen adicionales en WordPress
- Cómo forzar nombres de archivo de imagen limpios en WordPress (Método fácil)
- Cómo limpiar tu biblioteca de medios de WordPress
- Cómo cambiar la ubicación predeterminada de carga de medios en WordPress
Esperamos que este artículo te haya ayudado a organizar mejor las cargas de medios por parte de los usuarios en tu sitio de WordPress. A continuación, puedes consultar nuestras selecciones expertas de los mejores plugins de slider para WordPress y nuestra guía sobre cómo cargar imágenes perezosamente fácilmente en WordPress.
Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.
Noel Williams
Cualquiera que busque una actualización podría querer considerar lo siguiente, que se encarga de los problemas de lista y cuadrícula
// Para vista de lista
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);
}
}
}
// Para vista de cuadrícula
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;
}
Soporte de WPBeginner
Thank you for sharing this
Administrador
Bruno
El plugin funciona, pero si cambias a ‘upload.php?mode=list’ es posible ver todos los medios de nuevo. Solo funciona en el modo=grid
Soporte de WPBeginner
Thank you for sharing this information
Administrador
nathan
¡Increíble! ¡Está funcionando!
Pero si se usa la aplicación de WordPress instalada desde el móvil, todos los usuarios aún pueden acceder a toda la biblioteca de medios. ¿Alguna solución?
¡Tu ayuda es muy apreciada!
Soporte de WPBeginner
No tenemos una solución para la aplicación en este momento, pero ciertamente estaremos atentos.
Administrador
Alvaro Gomez
Thank you for mentioning my plugin
Soporte de WPBeginner
Thank you for creating the plugin and placing it on the WordPress.org repo
Administrador
Daniel
Estoy buscando una manera de hacer que los usuarios suban directamente desde su PC en lugar de ir a la página de medios
kim
Puede que este no sea el post en el que deba preguntar esto, pero…
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?
Maestro-username1- medios (solo ve archivos multimedia de username1)
Maestro-username2-medios (solo ve archivos multimedia de username2)
Hugh
En lugar de:
!current_user_can(‘activate_plugins’)
&&
!current_user_can(‘edit_others_posts’)
USAR:
!current_user_can(‘administrator’)
Porque, por ejemplo, si usas el plugin ‘User Role Editor’, podrías querer permitir que el usuario actual pueda activar plugins Y/O editar las publicaciones de otros.
Just a thought, works for me
¡Gracias por la publicación!
Peter
Buena publicación.
¿Y hay alguna forma de desautorizar la carga de archivos directamente a la biblioteca de medios y forzar a los usuarios (excepto a los administradores) a usar el botón Agregar medios dentro del editor de publicaciones/páginas?
Soporte de WPBeginner
Hola Peter,
Sí, lo hay. Puedes usar el plugin Adminimize para ocultar el enlace de Medios de la barra de administración de tu WordPress para todos los roles de usuario, excepto para los administradores.
Administrador