WordPress: remover acentos e espaços de nomes de arquivos

Recentemente, em alguns projetos da duo.me, tivemos problemas com algumas hospedagens que simplesmente se perdiam quando precisavam encontrar arquivos com caracteres acentuados, espaços ou ainda letras maiúsculas no nome. Para evitar que isso acontecesse novamente passamos a colocar o seguinte código em todos os nossos temas, dessa forma os nomes dos arquivos passam por processo similar ao da criação automática de slugs: transformação de espaços em hífens, caracteres com acento e transformação em letras minúsculas.

Fica a dica:

// Remove acentos e espaços dos arquivos no upload
function custom_sanitize_file_name ( $filename ) {
	$filename = remove_accents( $filename );
	$filename = strtolower( $filename );
	$file_parts = pathinfo( $filename );
	return sanitize_title( $file_parts['filename'] ) . '.' . $file_parts['extension'];
}
add_filter( 'sanitize_file_name', 'custom_sanitize_file_name' );

Inclua esse código nos seus temas e seja feliz 🙂 Ele é bem simples e serve como mais um exemplo dos hooks no WordPress.

Tags:

Comentários

  • Daniel A Neves

    Amigos, na prática, Qual a diferença deste codigo abaixo com este que vcs postaram?

    // Remover acentos no Nome

    add_filter(‘sanitize_file_name’, ‘sa_sanitize_spanish_chars’, 10);

    function sa_sanitize_spanish_chars ($filename) {
    return remove_accents( $filename );
    }

  • Felipe Elia

    Boa pergunta! Na prática o código postado também transforma todo o nome para letras minúsculas e transforma os espaços em branco em hífens.