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

  • Última modificação: 30/08/2020
  • Tempo de leitura: 2 min.

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.

Felipe Elia

Associate Director of Platform Engineering na 10up, WordPress Core Contributor, Global Polyglots Mentor na comunidade internacional do WordPress e Locale Manager na comunidade WordPress Brasil.

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.

Comentários encerrados.