Scommetto che non hai capito 😀 Comunque, questo articolo spiega come esportare anche le immagini in evidenzia dei nostri post insieme ai Feed RSS di WordPress, e successivamente come includerli in un’altro blog. 

Nei feed RSS di wordpress infatti non sono presenti i link delle immagini in evidenzia, questo ovviamente comporta l’impossibilità di utilizzarli in un eventuale lettore RSS o meglio ancora in un implementazione di essi in un nostro sito. Ma fortunatamente a tutto c’è rimedio..

Come rimediare a ciò

Immaginiamo di avere un sito, nel quale abbiamo bisogno di includere una lista degli ultimi articoli di un’altro nostro blog, quello che andremo a fare è richiamare la lista semplicemente dai feed rss, immaginiamo anche di voler includere le immagini in evidenzia dei nostri articoli, nei feed non vengono incluse, rinunciamo a ciò? Ovviamente no!

Per prima cosa dobbiamo includerli nei feed, possiamo farlo semplicemente creando una piccola funzione come la seguente da aggiungere nel file functions.php del nostro tema:

function aggiungi_thumb_rss($content) {
    global $post;
    if(has_post_thumbnail($post->ID)) {
        $content = '<p>' . get_the_post_thumbnail($post->ID) .
        '</p>' . get_the_excerpt();
    }
 
    return $content;
}
add_filter('the_excerpt_rss', 'aggiungi_thumb_rss');
add_filter('the_content_feed', 'aggiungi_thumb_rss');

 

Bene, siamo a metà dell’opera, adesso dobbiamo importarli nel nostro sito. Io dovendoli importare su un sito sviluppato in wordpress ho pensato di creare un’altra funzione, anch’essa da inserire nel file functions.php del tema, ovviamente dell’altro sito!

<?php

function leggi_rss($url) {

    $rss = fetch_feed($url);
    if (!is_wp_error( $rss ) ) :
        $maxitems = $rss->get_item_quantity(5);
        $rss_items = $rss->get_items(0, $maxitems);
    endif;
   
    function get_first_image_url($html)
    {
        if (preg_match('/<img.+?src="(.+?)"/', $html, $matches)) {
            return $matches[1];
        }
    }
   
    function shorten($string, $length)
    {
        $suffix = '&hellip;';

        $short_desc = trim(str_replace(array("/r", "/n", "/t"), ' ', strip_tags($string)));
        $desc = trim(substr($short_desc, 0, $length));
        $lastchar = substr($desc, -1, 1);
         if ($lastchar == '.' || $lastchar == '!' || $lastchar == '?') $suffix='';
        $desc .= $suffix;
        return $desc;
    }
   
    $string = '<ul id="from_blog">';
    if ($maxitems == 0) return '<li>Nessun articolo.</li>';
    else
    foreach ( $rss_items as $item ) :
    $string .= '<li class="item"><span class="rss-image"><img src="' .get_first_image_url($item->get_content()). '"/></span><a class="titolo" target="_blank" href='.esc_url( $item->get_permalink() ).' title="'.esc_html( $item->get_title() ).'">'.esc_html( $item->get_title() ).'</a>';
    $string .= '<p>'.shorten($item-> get_description(),'150').'</p></li></ul>';
    endforeach;
   
    return $string;
}

?>

 

A questo punto non ci resta che richiamare la funzione nella parte di template che ci interessa indicando l’url dei feed in questo modo: <?php echo leggi_rss(‘http://sitowordpress.it/feed/’); ?>