Skip to content

Inserire le immagini in evidenza nel feed di WordPress

Attenzione: questo articolo è stato scritto più di 12 anni fa, alcune informazioni potrebbero essere obsolete.

Poniamo che vogliate recuperare da un vostro sito in PHP (non necessariamente in WordPress) titolo, permalink, riassunto e immagine di uno o più post di un vostro blog in WordPress.
Se la necessità fosse poi di impaginare questi elementi a piacimento nella vostra pagina del sito, non è una buona idea inserire l’immagine direttamente nei post del vostro blog, perché la posizione e lo stile dell’immagine sarebbe difficile da gestire in modo autonomo e l’immagine sarebbe visibile nel feed.
Una soluzione possibile è di distribuire l’immagine in evidenza o la prima immagine disponibile come allegato (enclosure) del feed.
Questo il codice da inserire nel file functions.php del tema del vostro blog:

function wporg_thumb_rss() {
global $post;
$first_img = "";
if (has_post_thumbnail($post->ID)) {
   $first_img=wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), array(150,150));
   $first_img=$first_img[0);
   $mime = get_post_mime_type(get_post_thumbnail_id($post->ID));
   $size = filesize(get_attached_file(get_post_thumbnail_id($post->ID)));
} 
else {
$ai = get_posts(array( 
 'post_type' => 'attachment', 
 'numberposts' => 1, 
 'post_status' => null, 
 'post_parent' => $post->ID,
 'post_mime_type' => 'image'
 )); 
if ($ai) {  
 foreach ($ai as $attachment) {  
   $first_img = wp_get_attachment_image_src($attachment->ID, array(150,150));
   $first_img=$first_img[0);
   $mime = get_post_mime_type($attachment->ID);
   $size = filesize(get_attached_file($attachment->ID));
 } 
 } 
}
echo '<enclosure url="'.$first_img.'" length="'.$size.'" type="'.$mime.'">';
}</enclosure>
<enclosure url="'.$first_img.'" length="'.$size.'" type="'.$mime.'">
add_filter('rss2_item', 'wporg_thumb_rss');</enclosure>

Il codice per recuperare uno o più post nel vostro sito e l’immagine allegata è il seguente:

function wporg_get_post_from_rss($link,$items) {
 $simple = simplexml_load_file($link);
 for($i=0;$i< $items;$i+=1)  {
$title = $simple->channel->item[$i)->title; 
$description =  $simple->channel->item[$i)->description; 
$content = $simple->channel->item[$i)->children("content", true); 
$data = $simple->channel->item[$i)->pubDate = date("d-m-Y",strtotime((string)($simple->channel->item[$i)->pubDate)));
$link = $simple->channel->item[$i)->link;
$image = $simple->channel->item[$i)->enclosure->attributes()->url;
  }
}

wporg_get_post_from_rss('https://my_site_url/feed/',1)

Articolo precedente

Articolo successivo

Discussione

  1. scusa l'ignoranza, ma le sto provando tutte e non me ne funziona una, sto diventando isterica!! :P
    Io inserisco il primo codice nel functions.php del mio tema e fin qui ci sono, il secondo codice dove lo dovrei inserire?
    Io ho fatto i feed con feed burner e vorrei inviare solamente il riassunto e l'immagine in evidenza o la prima immagine del post. Ho etto che ci sono anche dei plugin appositi, ma ccon l'ultima versione di WP non sono verificati.. Cosa consigli?
    Grazie in anticipo :)

  2. Ciao Gloria, se non ho capito male, per quello che vuoi tu ti basta il codice che hai già inserito nel functions.php, per avere il solo riassunto nei feed vai in Impostazioni -> Impostazioni lettura e selezioni Per ciascun articolo in un feed, mostra: Riassunto. Il secondo codice serve quando hai un altro blog/sito e vuoi recuperare e impaginare il contenuto del tuo sito/blog.
    Per quanto riguarda i plugin non ne conosco, ma se il problema è la compatibilità con l'ultima versione magari tra poco chi ha sviluppato il plugin farà uscire l'aggiornamento, basta aspettare.

  3. Io l'ho fatto, ma la cosa strana è che non mi viene l'immagine, ma appare un link testuale che rimanda all'immagine! Che tra l'altro non è l'immagine del post, ma una miniatura creata da wp per l'anteprima sul sito!

  4. Gloria, lo script fa proprio quello: inserisce la thumbnail dell'immagine, non l'immagine originale, e non la inserisce nel post (anche perché se hai inserito una immagine nel post, nel feed c'è già), ma come enclosure, allegato.

  5. Si che fosse la thumbnail l'avevo capito, ma intendevo che me la fa di un'aimmagine che non è quella che avevo impostato io, ma mi ero spiegata male.. E poi avevo capito male perchè pensavo non mi mettesse il link, ma l'immagine, visto che il problema dei miei feed è proprio quella di non avere l'immagine..Adesso cerco qualcosa, grazie e scusa per il tempo perso!

Rispondi a Gloria Annulla risposta

Il tuo indirizzo email non sarà pubblicato.