Teléfono y Whatsapp: 675 18 68 80

Cómo eliminar acentos al subir archivos en WordPress

Hace poco me topé con un bug en una web WordPress que afectaba a navegadores Safari en iOS. Las imágenes no se veían si una URL de una imagen tenía un acento y hubo que incorporar una función PHP vinculado al filtro sanitize_file_name para que en el evento de subir un archivo, quitase los caracteres acentuados y así se pudiese ver el archivo en OSx e iOS.

Corregir el bug

En el archivo functions.php del tema añadimos:

function sanitize_filename_on_upload($filename) {
   $ext = end(explode('.',$filename));
   // Reemplazar todos los caracteres extranos.
   $sanitized = preg_replace('/[^a-zA-Z0-9-_.]/','', substr($filename, 0, -(strlen($ext)+1)));
   // Replace dots inside filename
   $sanitized = str_replace('.','-', $sanitized);
   return strtolower($sanitized.'.'.$ext);
}
 
add_filter('sanitize_file_name', 'sanitize_filename_on_upload', 10);