La migliore alternativa a TimThumb ? Ridimensionamento immagini con PHP, Mod Rewrite e Cache

L

Wordpress ? Qualcuno lo definisce un CMS, altri sono cauti nelle definizioni e lo definiscono un “simil CMS”. Il dibattito è aperto e invece di preoccuparci delle definizioni vogliamo preoccuparci di un’altra cosa, delle alternative a TimThumb, soluzione abusata per il ridimensionamento immagini su WordPress. E’ comodo, funziona ma ha un problema, aumenta il carico (server load) del server. Inutile fornire spiegazioni, è sufficiente una ricerca su google.com avente come oggetto “timthumb server load” per visualizzare centinaia di risultati di utenti wordpress che si lamentano del carico del server. Esistono anche i casi più estremi, quelli di utenti che sono stati “richiamati” dal proprio hosting provider.

Risposta parziale

Jay di Revised Again (LINK) presenta una mini funzione da inserire in functions.php che, assieme a delle istruzioni da inserire in htaccess, dovrebbero ridurre il carico del server. Il procedimento è chiaro, ricco di esempi e viene fornito il codice adatto a chi carica le immagini all’interno di wp-content/uploads. Il problema ? Dobbiamo continuare a utilizzare TimThumb che viene segnalato frequentemente da Secunia.. (LINK).

Alternativa a TimThumb

Mike Harding di sneak.co.nz presenta uno script php, una valida alternativa a TimThumb. Richiede qualche intervento manuale in WordPress, sul file image.php e su htaccess e, chi ha un’installazione di prova di WordPress (EasyPHP in locale?) e un pò di tempo libero, potrebbe essere”il santo Graal“. Perchè ? Questa soluzione riduce il carico del server e elimina la “tirannia da plugin”.

Procedimento

Parte 1: Functions.php

Sfruttiamo i custom key di wordpress aggiungendo in functions.php il codice che trovate in basso (è un esempio, dovete adattarlo alla vostra installazione). Il codice in questione (l’esempio) aggiunge un box all’editor di WordPress dove inseriamo l’url dell’immagine del slideshow e quella dell’immagine da ridimensionare.

Parte 2: HTACCESS

Spostate lo script fornito da Mike Harding di sneak.co.nz nella directory radice del vostro sito. Inserite delle nuove regole in htaccess per creare degli “indirizzi puliti”. L’esempio in questione richiama lo script che è stato rinominato in miofile.php e posizionato nella directory radice del sito. Create anche una directory cache (potete modificare lo script) con permessi 777 nella directory radice del sito.

Esempi (da inserire in htaccess):

  • RewriteRule ^img-thumb/([A-Za-z0-9./_-]+).(jpg|gif|png)$ miofile.php?max_width=38&imgfile=$1.$2
  • (immagine che verrà ridimensionata in 38×38 pixel)

  • RewriteRule ^img-slide/([A-Za-z0-9./_-]+).(jpg|gif|png)$ miofile.php?max_width=59&imgfile=$1.$2
  • (immagine che verrà ridimensionata in 59×59 pixel)

  • RewriteRule ^img-news/([A-Za-z0-9./_-]+).(jpg|gif|png)$ miofile.php?max_width=203&imgfile=$1.$2
  • (immagine che verrà ridimensionata in 203×203 pixel)

Parte 3: Richiamo l’indirizzo inserito all’interno del box

Come richiamare l’url relativo (indirizzo sprovvisto di http://miosito.com) dell’immagine che abbiamo inserito all’interno del box immagine ? L’esempio in basso crea un’immagine di dimensioni 50×50. Il contenuto del box viene richiamato aggiungendo al while : $data = get_post_meta( $post->ID, ‘key’, true ). L’immagine viene creata impostando img src con http://miositoweb.it/img-thumb/, http://miositoweb.it/img-slide/ o http://miositoweb.it/img-news/ (per creare rispettivamente un immagine 38×38 pixel, 59×59 pixel o 203×203 pixel) e aggiungendo echo $data[‘immagine’];

wordpress loop esempio

In sintesi

E’ un esempio di come si possa fare a meno di TimThumb. Questo script è leggero, richiede modifiche ma non supporta il “Crop Immagini”. Significa che le immagini da ridimensionare dovranno avere la stessa lunghezza e altezza. Riuscite a “vivere senza questa funzione” ? Avete trovate una vera alternativa a TimThumb !

4 commenti

By Matteo

Categorie

Seguici su

RSS Lavoro Stagionale