TimThumb er død! Hvordan håndtere bilder i WordPress (guide 2026)
NB

TimThumb er død! Hvordan håndtere bilder i WordPress (guide 2026)

Sist verifisert: 6. august 2026
4 min lesetid
Guide
Full-stack-utvikler
Sikkerhetsrevisor

Hvis du er en WordPress-veteran, husker du sikkert TimThumb. Det var et lite PHP-skript som fantes i nesten hvert eneste “premium theme” rundt 2010. Det gjørde det enkelt å beskjære og skalere bilder “on the fly”.

I 2011 ble det oppdaget en kritisk Zero-Day-sårbarhet i det, som gjørde det mulig for hackere å ta over millioner av nettsteder. Det markerte slutten på “enkelt skript”-æraen.

I dag, i 2026, har WordPress en kraftig motor for mediehåndtering. Hvis du fortsatt ser timthumb.php i temaet ditt, slett det umiddelbart. I denne guiden skal jeg vise deg hvordan du gjør det profesjonelt.


#Hvorfor var TimThumb dårlig?

TimThumb fungerte “on the fly”: den tok et bilde fra en URL, behandlet det og lagret det i en cache. Problemer:

  1. Sikkerhet: Tillot Remote Code Execution (RCE) hvis den ikke var perfekt konfigurert.
  2. Ytelse: Belastet PHP-serveren ved hver nye bildeforespørsel.
  3. Ingen integrasjon: Så ikke WordPress sitt mediebibliotek.

#Metode 1: Native størrelser (add_image_size)

WordPress har hatt funksjonen add_image_size() i årevis. Den lar deg definere formater som systemet genererer automatisk under opplasting.

#I functions.php:

function wppoland_setup_theme() {
    // Aktiver støtte for utvalgte bilder (post thumbnails)
    add_theme_support( 'post-thumbnails' );

    // Standardstørrelser (soft crop - beholder størrelsesforhold)
    add_image_size( 'blog-list', 800, 400 ); 

    // Hard Crop (klipper bort overflødig)
    // WordPress beskjærer nøyaktig midten av bildet
    add_image_size( 'team-member', 300, 300, true ); 
    
    // Beskjæring med posisjonering (f.eks. fra toppen, fra venstre)
    add_image_size( 'hero-banner', 1920, 600, ['center', 'top'] );
}
add_action( 'after_setup_theme', 'wppoland_setup_theme' );

#I malfilen (f.eks. Single.php):

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

Fordel: Bilder genereres én gang (ved opplasting). De serveres som ferdige statiske filer. Ingen PHP-belastning ved visning.


#Metode 2: Generering “on-the-fly”

Native størrelser har en ulempe: hvis du bytter tema, må du regenerere miniatyrbilder (f.eks. med Regenerate Thumbnails-utvidelsen), noe som tar evigheter for et 100GB bibliotek.

I 2026 er servere raske og CDN-er billige. Vi bruker ofte en hybrid tilnærming eller eksterne tjenester.

#Løsning: Cloudflare / CDN

I stedet for å belaste PHP-serveren din, bruk URL-parametere.

<img src="https://dittnettsted.no/wp-content/uploads/bilde.jpg?width=400&height=300&format=avif">

De fleste WordPress-hostinger i 2026 (Kinsta, WP Engine, Cloudways) tilbyr dette som standard. Du trenger ikke et PHP-skript på serveren din!


#Metode 3: Srcset og sizes attributter

WordPress genererer automatisk srcset-attributtet for bildene dine, slik at nettleseren kan velge passende størrelse for enheten (mobil vs desktop 4K).

<!-- WordPress genererer dette automatisk: -->
<img src="bilde-800x400.jpg" 
     srcset="bilde-300x150.jpg 300w, 
             bilde-800x400.jpg 800w, 
             bilde-1024x512.jpg 1024w"
     sizes="(max-width: 600px) 100vw, 800px">

Din jobb som utvikler er bare å definere sizes korrekt ved hjelp av filteret wp_calculate_image_sizes.


#Optimalisering: WEBP og AVIF

I 2026 er JPG og PNG relikvier for bilder. WordPress støtter native WebP (siden versjon 5.8) og AVIF (siden versjon 6.5).

Du trenger ikke utvidelser. Bare last opp en AVIF-fil, og WordPress håndterer den. Eller bruk en utvidelse (som Performance Lab) for å automatisk konvertere gamle JPG-er til AVIF under opplasting.


#Rydde opp (fjerne TimThumb)

Hvis du har arvet et gammelt prosjekt:

  1. Skann: Søk i wp-content-katalogen etter timthumb.php eller thumb.php.
  2. Slett: Slett filen.
  3. Fiks: Finn hvor den ble kalt i koden:
    // GAMMEL KODE (DÅRLIG)
    <img src="<?php echo get_template_directory_uri(); ?>/timthumb.php?src=..." />
    
    // ERSTATT MED (BRA)
    <?php the_post_thumbnail( 'min-størrelse' ); ?>
  4. Regenerer: Installer WP-CLI og kjør wp media regenerate.

#Oppsummering

Historien om TimThumb er en leksjon i ydmykhet. Bekvemmelighet (skalering on-the-fly) kan ikke stå over sikkerhet. har vi native add_image_size(), responsive srcset, og CDN-er som behandler bilder i skyen. Det er ingen grunn til å gå tilbake til løsninger fra 15 år siden.

Se vår WordPress-sikkerhetsrevisjon.

Neste steg

Gjør artikkelen om til faktisk implementering

Denne blokken styrker intern lenking og sender leseren videre til de mest relevante tjenestene og innholdet.

Relaterte artikler