In questo tutorial WordPress vedremo come trasformare in scala di grigio, e in automatico, le immagini caricate in post e pagine del CMS.

Modifiche del genere possono essere utili in progetti particolari, come la creazione di foto blog su temi vintage e simili.

[Step 1] – Prima modifica al tema

La prima cosa da fare è operare una codifica supplementare al file functions.php. Apriamolo e incolliamo la seguente porzione di codice:

add_action('after_setup_theme','themename_bw_size');
function themename_bw_size() {
    add_image_size('themename-bw-image', 200, 200, true);
}

Nel nostro primo passaggio abbiamo indicato a WordPress di ridimensionare (croppare) a 200 x 200 pixel tutte le immagini inserite. È ovviamente possibile impostare le “misure” preferite.

[Step 2] – Codifica supplementare

Ora dobbiamo dire al CMS engine quali estensioni file immagine accettare e il filtro cromatico da applicare. Proseguiamo con l’aggiunta delle seguenti stringhe:

add_filter('wp_generate_attachment_metadata','themename_bw_filter');
function themename_bw_filter($meta) {
    $file = wp_upload_dir();
    $file = trailingslashit($file['path']).$meta['sizes']['themename-bw-image']['file'];
    list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
    $image = wp_load_image($file);
    imagefilter($image, IMG_FILTER_GRAYSCALE);
    switch ($orig_type) {
        case IMAGETYPE_GIF:
            imagegif( $image, $file );
            break;
        case IMAGETYPE_PNG:
            imagepng( $image, $file );
            break;
        case IMAGETYPE_JPEG:
            imagejpeg( $image, $file );
            break;
    }
    return $meta;
}

Tramite queste istruzioni, il motore del sistema di gestione contenuti ammetterà solo l’upload di immagini GIF, JPEG e PNG a cui applicherà il filtro “grayscale”.