Ao enviar um arquivo .woff ou .woff2 para a biblioteca de mídia do seu site, é possível que apareça a mensagem “Sem permissão para enviar esse tipo de arquivo.”
Isso acontece porque o WordPress não confia no arquivo baseado só na extensão. Ele tenta evitar que alguém suba um arquivo malicioso disfarçado de algo inofensivo. Arquivos WOFF ou WOFF2 são arquivos binários complexos que podem ser usados em ataques. Então, por padrão, o WordPress bloqueia tudo que não é explicitamente permitido.
Então, para poder usar esse tipo de arquivo no site, você precisa liberar o envio. Para isso, temos dois caminhos.
1) Liberar via wp-config.php
Essa opção é a mais tradicional, mas é um pouco mais trabalhosa.
- Acesse os arquivos do site via FTP ou pelo gerenciador de arquivos no cPanel
- Localize o arquivo wp-config.php na raiz do site
- Adicione o seguinte código ACIMA da linha que diz
/* That's all, stop editing! Happy publishing. */
define( 'ALLOW_UNFILTERED_UPLOADS', true );- Salve o arquivo wp-config.php
- Envie os arquivos de fontes para a biblioteca de mídia do site
- Por fim, edite o arquivo wp-config.php novamente para excluir a linha que você adicionou.
2) Incluir um snippet
Essa opção não precisa acessar a hospedagem do cliente, o que pode ser mais conveniente em alguns casos.
- No menu lateral, vá em Snippets > Adicionar novo
- No nome do snippet, coloque
WP - Permitir upload de fontes - No conteúdo, insira o código abaixo:
function permitir_upload_fontes($mimes) {
$mimes['woff'] = 'font/woff';
$mimes['woff2'] = 'font/woff2';
return $mimes;
}
add_filter('upload_mimes', 'permitir_upload_fontes');
function corrigir_filetype_fontes($data, $file, $filename, $mimes) {
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if ($ext === 'woff') {
$data['ext'] = 'woff';
$data['type'] = 'font/woff';
}
if ($ext === 'woff2') {
$data['ext'] = 'woff2';
$data['type'] = 'font/woff2';
}
return $data;
}
add_filter('wp_check_filetype_and_ext', 'corrigir_filetype_fontes', 10, 4);- Clique em salvar e ativar snippet
- Envie os arquivos de fontes para a biblioteca de mídia do site
- Por fim, vá em Snippets > Todos os snippets e remova o snippet que você criou