Quando um arquivo é enviado (upload), o WordPress verifica para ver o tipo real, para assim descobrir o verdadeiro tipo MIME. Isto é determinado a partir desta parte em wp_check_filetype_and_ext ():
$finfo = finfo_open (FILEINFO_MIME_TYPE);
$real_mime = finfo_file ($ finfo, $ file);
Isso vai dizer que o tipo mime real de um arquivo .xml é text / plain. Na versão anterior, apenas constar a extensão .xml já era suficiente para permitir o upload, no entanto, agora é necessário bater a extensão e o tipo do arquivo como permitido, ou qualquer um que falhar irá rejeitar o upload do arquivo com a mensagem: ‘Sorry, this file type is not permitted for security reasons.’
As alterações no wp_check_filetype_and_ext () no 5.0.1 tornaram a validação do tipo mime mais rigorosa. Agora está certificando-se que o tipo mime real do arquivo, descrito por $real_mime, deve coincidir com o da extensão do arquivo de wp_check_filetype (), se é suportado.
A razão pela qual o upload de .vtt ou xml falha em 5.0.1 é que o tipo real text / plain não é o mesmo que text / vtt da extensão de arquivo .vtt suportada ou text/xml ou application/xml.
Antes da 5.0.1 a saída de wp_check_filetype_and_ext () ao fazer o upload de um arquivo .vtt:
Array ([ext] => vtt [tipo] => text / vtt [proper_filename] =>)
Após 5.0.1 a saída é:
Array ([ext] => [type] => [proper_filename] =>)
Usar o filtro wp_check_filetype_and_ext pode sobrescrever a lógica introduzida no 5.0.1.
O mesmo parece acontecer para arquivos .csv na nova versão.
O patch principal sugerido é adicionar o .csv ao tipo mime text / plain wp_get_mime_types ():
// Formatos de texto.
‘txt|asc|c|cc|h|srt|csv|xml’ => ‘text/plain’,