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 gjorde det enkelt å beskjære og skalere bilder “on the fly”.
I 2011 ble det oppdaget en kritisk Zero-Day-sårbarhet i det, som gjorde 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:
- Sikkerhet: Tillot Remote Code Execution (RCE) hvis den ikke var perfekt konfigurert.
- Ytelse: Belastet PHP-serveren ved hver nye bildeforespørsel.
- 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:
- Skann: Søk i
wp-content-katalogen ettertimthumb.phpellerthumb.php. - Slett: Slett filen.
- 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-storrelse' ); ?> - Regenerer: Installer
WP-CLIog kjørwp 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.


