En el último post vimos cómo dar permisos a nuestros usuarios colaboradores para cargar archivos a la Librería 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 solucionarlos mediante código en el archivo functions.php o también mediante un sencillo plugin. Vamos a ver ambos métodos, pues cada cosa 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 alguna futura actualización cambian algo que haga dejar de funcionar a nuestro código. En cambio ganaremos en optimización, pues los plugins siempre llevan funciones y código que no necesitamos.

El código:

//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 librería de medios:

Si queremos también que el usuario administrador solo pueda ver sus archivos (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!