O seu site ainda usa timthumb.php? Está em risco. Um guia para gestão nativa de media, WebP/AVIF e add_image_size().
PT-PT

TimThumb morreu! Como lidar com imagens no WordPress (guia 2026)

5.00 /5 - (26 votes )
Última verificação: 1 de março de 2026
Experiência: 5+ anos de experiência
Índice

Se é um veterano do WordPress, certamente lembra-se do TimThumb. Era um pequeno script PHP encontrado em quase todos os “temas premium” por volta de 2010. Ele permitia cortar e redimensionar imagens “on the fly” facilmente.

Em 2011, foi descoberta uma vulnerabilidade crítica Zero-Day nele, permitindo que hackers comprometessem milhões de sites. Isso marcou o fim da era dos “scripts simples”.

Hoje, em 2026, o WordPress possui um poderoso motor de gestão de media. Se ainda vê timthumb.php no seu tema – apague-o imediatamente. Neste guia, vou mostrar-lhe como fazer isso profissionalmente.


Por que o TimThumb era mau?

O TimThumb funcionava “on the fly”: pegava numa imagem de um URL, processava-a e guardava-a numa cache. Problemas:

  1. Segurança: Permitia Execução Remota de Código (RCE) se não fosse perfeitamente configurado.
  2. Performance: Sobrecarregava o servidor PHP a cada novo pedido de imagem.
  3. Sem Integração: Não reconhecia a Biblioteca de Media do WordPress.

Método 1: Tamanhos nativos (add_image_size)

O WordPress tem a função add_image_size() há anos. Ela permite definir formatos que o sistema gerará automaticamente durante o upload.

No functions.php:

function wppoland_setup_theme() {
    // Ativar suporte para imagens de destaque (post thumbnails)
    add_theme_support( 'post-thumbnails' );

    // Tamanhos padrão (soft crop - mantém proporção)
    add_image_size( 'blog-list', 800, 400 ); 

    // Hard Crop (corta o excesso)
    // O WordPress cortará exatamente o centro da imagem
    add_image_size( 'team-member', 300, 300, true ); 
    
    // Corte com posicionamento (ex: do topo, da esquerda)
    add_image_size( 'hero-banner', 1920, 600, ['center', 'top'] );
}
add_action( 'after_setup_theme', 'wppoland_setup_theme' );

No ficheiro de template (ex: Single.php):

if ( has_post_thumbnail() ) {
    the_post_thumbnail( 'hero-banner', ['class' => 'img-fluid'] );
}

Vantagem: As imagens são geradas uma vez (durante o upload). São servidas como ficheiros estáticos prontos. Zero carga de PHP ao exibir.


Método 2: Geração “on-the-fly”

Tamanhos nativos têm uma desvantagem: se mudar de tema, tem de regenerar as miniaturas (ex: com o plugin Regenerate Thumbnails), o que demora eternidades para uma biblioteca de 100GB.

Em 2026, servidores são rápidos e CDNs são baratos. Muitas vezes usamos uma abordagem híbrida ou serviços externos.

Solução: Cloudflare / CDN

Em vez de sobrecarregar o seu servidor PHP, use parâmetros de URL.

<img src="https://oseusite.pt/wp-content/uploads/imagem.jpg?width=400&height=300&format=avif">

A maioria dos alojamentos WordPress em 2026 (Kinsta, WP Engine, Cloudways) oferece isto como padrão. Não precisa de um script PHP no seu servidor!


Método 3: Atributos srcset e sizes

O WordPress gera automaticamente o atributo srcset para as suas imagens, permitindo que o navegador escolha o tamanho apropriado para o dispositivo (telemóvel vs desktop 4K).

<!-- O WordPress gera isto automaticamente: -->
<img src="imagem-800x400.jpg" 
     srcset="imagem-300x150.jpg 300w, 
             imagem-800x400.jpg 800w, 
             imagem-1024x512.jpg 1024w"
     sizes="(max-width: 600px) 100vw, 800px">

O seu trabalho como programador é apenas definir corretamente sizes usando o filtro wp_calculate_image_sizes.


Otimização: WEBP e AVIF

Em 2026, JPG e PNG são relíquias para fotos. O WordPress suporta nativamente WebP (desde a versão 5.8) e AVIF (desde a versão 6.5).

Não precisa de plugins. Basta fazer upload de um ficheiro AVIF, e o WordPress lida com ele. Ou use um plugin (como Performance Lab) para converter JPGs antigos em AVIF automaticamente durante o upload.


Limpeza (remover TimThumb)

Se herdou um projeto antigo:

  1. Scan: Pesquise no diretório wp-content por timthumb.php ou thumb.php.
  2. Apagar: Apague o ficheiro.
  3. Corrigir: Encontre onde era chamado no código:
    // CÓDIGO ANTIGO (MAU)
    <img src="<?php echo get_template_directory_uri(); ?>/timthumb.php?src=..." />
    
    // SUBSTITUIR POR (BOM)
    <?php the_post_thumbnail( 'o-meu-tamanho' ); ?>
  4. Regenerar: Instale WP-CLI e execute wp media regenerate.

Resumo

A história do TimThumb é uma lição de humildade. Conveniência (escala on-the-fly) não pode estar acima da segurança. temos add_image_size() nativo, srcset responsivo e CDNs a processar imagens na nuvem. Não há razão para voltar a soluções de há 15 anos atrás.

O que é TimThumb morreu! Como lidar com imagens no WordPress (guia 2026)?
TimThumb morreu! Como lidar com imagens no WordPress (guia 2026) é um aspeto essencial da gestão de sites WordPress que ajuda a melhorar o desempenho, a segurança e a experiência do utilizador.
Como implementar TimThumb morreu! Como lidar com imagens no WordPress (guia 2026)?
TimThumb morreu! Como lidar com imagens no WordPress (guia 2026) envolve a configuração de várias definições e a implementação das melhores práticas para otimizar o seu site WordPress.
Porque é que TimThumb morreu! Como lidar com imagens no WordPress (guia 2026) é importante?
TimThumb morreu! Como lidar com imagens no WordPress (guia 2026) é crucial porque tem um impacto direto nos rankings do seu site nos motores de busca, na velocidade de carregamento e no sucesso geral.

Precisa de FAQ adaptado ao setor e mercado? Criamos uma versão alinhada com os seus objetivos de negócio.

Fale connosco

Artigos Relacionados