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

  • Last modified: 30 de agosto de 2020
  • Reading time: 2 mins

Atualização: a partir da versão 5.5 do WordPress, este código não é mais necessário. Veja neste post todas as novidades do WordPress 5.5 para desenvolvedores.

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:

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

Este post tem 4 comentários

  1. Fernando Lopes

    Muito bom! Existe algum snippet que diminua o nome de um arquivo que for maior que um valor pré determinado? Tenho tido problemas quando uso plugins de backup e o nome do arquivo é muito longo.

    1. Felipe Elia

      Oi Fernando,
      Você pode substituir a linha do retorno para algo como
      return substr( sanitize_title( $file_parts[‘filename’] ), 0, 100 ) . ‘.’ . $file_parts[‘extension’];
      Para um nome de arquivo com 100 caracteres, sem contar a extensão.

  2. 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 );
    }

    1. 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.

Os comentários estão encerrados.