[WordPress] Estrarre gli allegati immagine da un post

Se utilizzate wordpress e siete soliti usare l’uploader interno per embeddare immagini nei post, sappiate che il sistema crea per le immagini stesse un’apposita voce di attachment collegata a quel post/pagina.

Purtroppo wordpress tratta gli attachment immagine come qualsiasi altro allegato. Delle api più specifiche sarebbero state una soluzione plausibile e molto più accessibile per gli sviluppatori. Si può sempre ovviare scrivendo un plugin adeguato, la cosa non dovrebbe portare via troppo tempo.

Invece del plugin, di cui vi lascio ogni incombenza (qui una breve guida NON aggiornata, ma ancora in gran parte valida su come scrivere un plugin per wordpress), vi propongo per mia eterna memoria un semplicissimo hack gestibile da template per esportare un array di immagini di un post.

<?php 
  function get_attached_images($postid, $size=false, $icon=false){
        $parameters = array('post_type' => 'attachment',
                            'numberposts' => -1,
                            'post_status' => null,
                            'post_parent' => $postid
                           );
        $attachements = get_posts($parameters);
        if($attachements){
            $res = array();
            foreach($attachements as $attachement){
                if(wp_attachment_is_image($attachement->ID)){
                    $res[] = wp_get_attachment_image_src($attachement->ID, $size, $icon);
                }
            }
        }
        return $res;
  }
?>

 

L’uso è abbastanza semplice:

Buona domenica a tutti.