Spesso chi lavora con i template in WordPress si trova davanti al problema di estrarre da un post l’immagine thumbnail (in WordPress significa “immagine in evidenza” o “featured image”).
Il problema nasce quando in un post ci sono delle immagini allegate, ma nessuna è stata messa come “in evidenza”: propongo quindi un semplice script (una funzione) che verifica se esiste nel post un’immagine in evidenza, eventualmente scarica la prima immagine allegata.
Come usare get_a_thumbnail:
- $postid: l’id del post da cui estrarre l’immagine
- $size: la dimensione dell’immagine da estrarre (stringa o array):
se stringa il valore può essere: thumbnail, medium, large or full
se array qualcosa come: array(32,32) - return: la funzione ritorna un oggetto di tipo array con questi indici:
- [0] => url
- [1] => width
- [2] => height
- [3] => boolean: vero $url è un’immagine ridimensionata, false se è di dimensioni originali
//restituisce l'immagine (oggetto) in evidenza o la prima immagine inserita function get_a_thumbnail($postid=null, $size='thumbnail'){ if ($postid){ $post_thumbnail_id = get_post_thumbnail_id( $post_id ); if ($post_thumbnail_id && $post_thumbnail_id!=""){ //esiste immagine in evidenza return wpmrx_get_attachment_image_src( $post_thumbnail_id, $size, false ); }else{ //cerco tra le immagini $args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $postid ); $attachments = get_posts( $args ); if ( $attachments ) { return wpmrx_get_attachment_image_src( $attachments[0]->ID, $size, false ); } } } return false; }