• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria
  • Ir al pie de página

Dani Sánchez - Gestionatuweb

Desarrollador web freelance - Dani Sánchez Gestionatuweb

  • ¿Eres agencia?
  • WordPress
    • Mantenimiento
    • Desarrollo
    • Soporte técnico
  • Cursos
  • Porfolio
  • Blog
  • Contacto
  • Solicita Presupuesto
Estás aquí: Inicio / Publicaciones / Modificar la Biblioteca de Medios para que los usuarios solo vean sus propios archivos (WordPress)

Publicaciones, Tutoriales, Wordpress / 16 de enero de 2018

Modificar la Biblioteca de Medios para que los usuarios solo vean sus propios archivos (WordPress)

En el último post vimos cómo dar permisos a nuestros usuarios colaboradores para cargar archivos a la Biblioteca de Medios y poder usarlos en sus entradas. Llegados a este punto, puede que nos interese hacer que nuestros colaboradores sólo puedan ver sus propios archivos y los de nadie más.

Esto como siempre podemos implementarlo mediante código en el archivo functions.php o también mediante un sencillo plugin. Vamos a ver ambos métodos, pues cada uno tiene sus ventajas e inconvenientes.

Por un lado, usar código nos obliga a estar al tanto del Códex de WordPress por si en una futura actualización se modifica alguna función, hook o metodología, que haga errar nuestro código. En cambio ganaremos en optimización, pues los plugins que instalamos siempre incluyen archivos, funciones y código que no necesitamos.

El código:

<?php
//Limitar el acceso a la librería solo a tus propios archivos
 function mostrar_solamente_archivos_del_usuario($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;
} 
add_filter('ajax_query_attachments_args', 'mostrar_solamente_archivos_del_usuario');
?>

Si optamos por usar el plugin, conviene asegurarnos de que su autor lo actualiza con frecuencia para mantener la compatibilidad con las nuevas versiones de WordPress.

En este caso vamos a usar WP Users Media, que en el momento de escribir este artículo, hace unas 3 semanas que se actualizó, lo cual indica que su autor lo está manteniendo.

Su configuración es muy simple, y una vez instalado y activado nos dirigimos al menú Ajustes – WP Users Media y solo tenemos que marcar los roles a los que aplicar la restricción de ver únicamente sus archivos en la biblioteca de medios:

Si también queremos ampliar esta limitación al administrador (por si existen varios administradores en el sitio web), podemos marcar la opción:

Y eso es todo de momento. Espero que esta nueva serie de Posts ayuden a aquellos que como yo, necesitaban habilitar zonas especiales para que otros usuarios puedan añadir contenido al sitio web.

Un saludo y hasta el próximo post!

Archivado en:Publicaciones, Tutoriales, Wordpress Etiquetado con:colaboradores, desarrollo web, php, plugins, programación web, publicaciones, tutoriales

Interacciones con los lectores

Este artículo puede contener código que podría no funcionar correctamente en tu versión de WordPress o causar incompatibilidad con tu plantilla o plugins. Úsalo bajo tu responsabilidad y haz siempre copia de tus archivos antes de modificarlos.

Comentarios

  1. Mari dice

    28 de noviembre de 2019 en 01:24

    El codigo me marca error de sintaxis en la linea 5

    Responder
    • Daniel, Gestionatuweb.net dice

      28 de noviembre de 2019 en 09:30

      Cierto, hay un error en el código provocado por el plugin que uso para el resaltado de códigos de ejemplo, que modifica las &&…

      Ya está modificado, gracias por avisar.

      Responder
  2. Darkyx dice

    16 de junio de 2020 en 05:58

    Crack!! Gracias me ayudaron muchisimo.!! Buena vibra bro

    Responder
  3. Lenyman dice

    16 de julio de 2020 en 08:43

    Hola Daniel… gracias por el código!! Pero no me ha ido bien: luego de ponerlo al principio del functions.php de mi tema hijo me salió error 500 en el navegador y no pude volver a acceder. Tuve que editar el archivo desde mi cliente FTP para borrar el código y volver a la normalidad. Mi WordPress es 4.8.13
    ¿Alguna sugerencia? Me gustaría poder ocultar la librería por código, no por plugin. Gracias.

    Responder
    • Daniel, Gestionatuweb.net dice

      16 de julio de 2020 en 09:22

      Hola, no lo pongas al principio, ponlo al final y asegurate que al copiar y pegar no se distorsiona el código (las comillas o algún signo de puntuación). Un saludo.

      Responder
      • Lenyman dice

        17 de julio de 2020 en 08:31

        It is working!!!! 🙂
        Comparto mi experiencia por si le sirve a alguien más: puse el código al final y lo revisé, pero seguía con el problema. Gracias a Dios que me iluminó justo cuando iba a darme por vencido… me dijo, hijo mío ¿por qué no sacas ese «» y pruebas?…. Así lo hice y está funcionando de maravillas!
        Gracias Daniel!!

        Responder
        • Lenyman dice

          18 de julio de 2020 en 07:25

          Para aclarar, donde dice ¿por qué no sacas ese «» y pruebas? me refería a las etiquetas de apertura y cierre de un archivo PHP (el sistema de comentarios me borró el texto en el comentario anterior). Por mi inexperiencia, copié todo el código tal cual…. pero al agregarlo al archivo functions NO se deben dejar dichas etiquetas. Saludos.

          Responder
          • Daniel, Gestionatuweb.net dice

            27 de julio de 2020 en 09:19

            Cierto, yo incluyo las etiquetas PHP en el código para que se entienda que es código PHP, pero entiendo que si se incluyen por medio del functions.php que ya tiene las etiquetas abiertas al principio, ocasionará error.

            Siempre doy por hecho que quien llega aquí y copia un código para su proyecto, tiene un mínimo de idea de lo que está haciendo 🙂

  4. Miguel dice

    22 de diciembre de 2020 en 17:43

    Muy bueno y me ayuda un monton, pero tengo una duda y es si se puede hacer que también cada usuario tenga su propia carpeta con sus archivos/imagenes dentro.

    Así de esta forma si tenemos 100 usuarios, cada uno tendría su propia carpeta (por ejemplo con el mismo nombre que el usuario) con sus imágenes que él solo podría ver y utilizar, y todo estaría mucho mas ordenado.

    Por ejemplo:

    Administrador tiene sus imagenes en /upload/

    Perico en /upload/perico/

    Antonio en /upload/antonio/

    ¿Eso se podría hacer? Y ¿se podría hacer que se crearan de forma automática al registrarse el usuario y si se da de baja que se borre con todo?

    Gracias

    Responder
    • dani dice

      23 de diciembre de 2020 en 08:21

      Hola, la biblioteca de medios de WordPress solo se puede clasificar de dos formas: en una única carpeta (uploads) o en subcarpetas por año y mes (upload/2020/12/). No es posible clasificarlos por nombre de usuario de forma nativa.

      Para ello deberías buscar algún plugin de gestión de uploads o descargas.

      Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  Acepto la política de privacidad

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral primaria

Daniel Sánchez

@danisanchez82
t.me/gestionatuweb

Buscar en la web

Contenidos del curso

  • Crear entradas desde un formulario externo en WordPress (sin plugins)
  • Ocultar la barra de admin a usuarios que no sean administradores
  • Impedir el acceso al Dashboard (wp-admin) a usuarios no administradores
  • Permitir el acceso a una página según el rol del usuario (WordPress)
  • Permitir a un usuario colaborador subir archivos desde el Frontend (WordPress)
  • Modificar la Biblioteca de Medios para que los usuarios solo vean sus propios archivos (WordPress)

Hosting de confianza

Footer

Buscar en la web

  • Inicio
  • Agencias
  • Mantenimiento WordPress
  • Desarrollo WordPress
  • Soporte técnico WordPress
  • Cursos
  • Portfolio
  • Blog
  • Contacto
  • Política de privacidad

Mis redes

  • Facebook
  • LinkedIn
  • Twitter
  • YouTube

© 2016–2021 Gestionatuweb · Programado con Genesis Framework · Iniciar sesión