Restringir archivos multimedia en WordPress

¿Cómo restringir el acceso a la biblioteca multimedia de WordPress a las subidas del propio usuario?
En algunas situaciones es necesario bloquear los archivos multimedia, para que un usuario no pueda borrar (por error o no) las imágenes cargadas por otro usuario del blog o de nuestro portal de noticias en WordPress
WordPress por defecto no permite esta opción, ya que los archivos multimedia son visibles y editables para todos los usuarios con las suficientes credenciales como para cargar un post en el sitio web.
¿Se puede hacer algo al respecto? Por supuesto que sí!
Si bien existen plugins complejos que permiten la gestión de archivos multimedia en nuestro sitio web, vamos a optar por incluir un pequeño código php o snippet en nuestro archivo functions.php
Cómo siempre es indispensable realizar un backup del mismo antes de hacer cualquier cambio. Este fragmento de WordPress le permitirá restringir el acceso a la biblioteca multimedia de WordPress a las subidas del propio usuario.
// Limitar el acceso a la biblioteca multimedia (los usuarios solo pueden ver/seleccionar los medios o archivos propios)
add_filter( 'ajax_query_attachments_args', 'wpsnippet_show_current_user_attachments' );
function wpsnippet_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;
}
Ahora los usuarios solamente tendrán acceso a sus propios archivos multimedia en nuestro sitio web WordPress.