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 '<enclosure url="'.$first_img.'" length="'.$size.'" type="'.$mime.'" />'; } 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)
Articoli correlati
Premessa: quello che sto per raccontare naturalmente è documentabile, e lo racconto soprattutto perché cose simili possono capitare e bisogna sempre...
Sono le cose più semplici quelle che possono far perdere molto tempo (e spesso inutilmente). In questo caso, può capitare che si crei un template di ...
Sfruttare le API di Analytics non è complesso, e molti sono gli strumenti a disposizione. Tuttavia non sempre le guide sono chiarissime, e non sempre...
Una delle pagine che si possono personalizzare facilmente in WordPress è quella dei risultati della ricerca, aggiungendo al proprio tema una search.ph...
19/12/2011 | Wordpress
blog | permalink | PHP | RSS | simplexml | soluzione | thumbnail | wordpress






adoro questo blog
Mi inchino con un lieve rossore :)
annoto diligentemente :)
grazie per la dritta
Dovere :)
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 :)
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.
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!
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.
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!
Figurati, ci mancherebbe, se riesco a trovare il tempo vedo di farci un post :)