xlthlx

I am not an early bird or a night owl. I am some form of permanently exhausted pigeon


Inserire le immagini in evidenza nel feed di WordPress


19 dicembre 2011

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 distruibuire 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 ThumbRSS() {
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 '';
}

add_filter('rss2_item', 'ThumbRSS');

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

function 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;

	//A questo punto restano da scrivere e gestire i dati come preferisco
}
}

get_post_from_rss('http://url_mioblog/feed/',1)
10 commenti
Generic placeholder image
marco

adoro questo blog

Generic placeholder image
Maria Serena Piccioni

Mi inchino con un lieve rossore :)

Generic placeholder image
Roberto

annoto diligentemente :)
grazie per la dritta

Generic placeholder image
Maria Serena Piccioni

Dovere :)

Generic placeholder image
Gloria

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 :)

Generic placeholder image
Maria Serena Piccioni

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.

Generic placeholder image
Gloria

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!

Generic placeholder image
Maria Serena Piccioni

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.

Generic placeholder image
Gloria

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!

Generic placeholder image
Maria Serena Piccioni

Figurati, ci mancherebbe, se riesco a trovare il tempo vedo di farci un post :)

Commenta


Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Utilizzando questo blog, accetti l'utilizzo dei cookie. Maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi