Plugin para renomear nome de arquivo de mídia ao fazer upload no WordPress
Em geral, o WordPress faz um trabalho digno de renomear e limpar nomes de arquivos, mas às vezes não é suficientemente bom. Quando se trata de caracteres UTF-8 ou acentos, ele tende a ignorá-los apenas porque são (com ressalvas) considerados seguros na web.
Isso pode se tornar um problema quando os serviços de terceiros (como o Google, por exemplo) rastreiam seu site.
Nomes de arquivos mais limpos
Se tudo o que você quer fazer é limpar seus nomes de arquivos e remover caracteres UTF8 e acentos, basta colocar este código em seu arquivo functions.php (irá limpar todos os nomes de novos arquivos enviados). Este código foi publicado originalmente por Vaughn Royko.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Plugin Name: WP Boss // Sanitizar nome de arquivo no upload | |
* Plugin URI: https://www.wpboss.com.br/dicas-truques/renomear-limpar-nomes-arquivos-midia-fazer-upload-wordpress/ | |
* Description: Este plugin renomeia e limpa nomes de arquivos de mídia do WordPress durante o upload. | |
* Version: 1.0 | |
* Author: João Elton Moreto <[email protected]> | |
* Author URI: https://www.wpboss.com.br/ | |
* License: GPL-2.0+ | |
*/ | |
function wpboss_sanitizar_nome_arquivo( $filename ) { | |
$nome_sanitizado = remove_accents( $filename ); // Converter para ASCII | |
// Standard replacements | |
$invalido = array( | |
' ' => '-', | |
'%20' => '-', | |
'_' => '-', | |
); | |
$nome_sanitizado = str_replace( array_keys( $invalido ), array_values( $invalido ), $nome_sanitizado ); | |
$nome_sanitizado = preg_replace('/[^A-Za-z0-9-\. ]/', '', $nome_sanitizado); // Remove todos os caracteres não alfanuméricos, exceto . | |
$nome_sanitizado = preg_replace('/\.(?=.*\.)/', '', $nome_sanitizado); // Remove todos os . exceto o último | |
$nome_sanitizado = preg_replace('/-+/', '-', $nome_sanitizado); // Substitui qualquer – duplicado por apenas um | |
$nome_sanitizado = str_replace('-.', '.', $nome_sanitizado); // Remove o último – se estiver no fim | |
$nome_sanitizado = strtolower( $nome_sanitizado ); // Caixa baixa | |
return $nome_sanitizado; | |
} | |
add_filter( 'sanitize_file_name', 'wpboss_sanitizar_nome_arquivo', 10, 1 ); |
Então, o que este plugin faz:
Arquivo: ~Meu Upload para o WordPress~.jpg
Padrão WordPress: Meu-Upload-para-o-WordPress.jpg
Solução do plugin: meu-upload-para-o-wordpress.jpg
Arquivo: Começar a modificação não é simples $$$.pdf
Padrão WordPress: Começar-a-modificação-não-é-simples-.pdf
Solução do plugin: comecar-a-modificacao-nao-e-simples.pdf
Arquivo: Nome%20de%20Arquivo-_-Realmente%20Feio-_-É-_-Muito%20Normal…..png
Padrão WordPress: Nome-de-Arquivo-_-Realmente-Feio-_-É-_-Muito-Normal…..png
Solução do plugin: nome-de-arquivo-realmente-feio-e-muito-normal.png
Melhorando o SEO com nomes de arquivos
Se você leva a sério o SEO do seu site, então uma boa ideia é nomear os arquivos (antes de fazer o upload), com nomes que tenham relação com as palavras-chave do post. Especialmente para a imagem destacada do post, uma boa ideia é o nome do arquivo repetir o título do post.
Você pode manter os espaços e acentos no nome do arquivo. Na hora de fazer o upload o plugin irá limpar o nome para você. 😉