Gestione Feed RSS Custom su WordPress

Oggi parleremo di gestione Feed RSS custom su WordPress, creeremo con pochi e semplici passaggi dei Feed personalizzati da poter ridistribuire, e offrire come servizio sul nostro sito web.

Gestione Feed RSS Custom su WordPress

Il primo passaggio da fare è quello di dichiarare nel file “functions.php” del nostro tema utilizzato, il nome del Feed RSS che utilizzeremo, quindi rechiamoci nella cartella del tema e apriamo con un gestore di testo il “functions.php” aggiungendo alla fine le seguenti righe di codice (per dichiarare il nome del feed rss, e per dire in quale template recuperarlo).

/////////////////////////////////////////////////////////////////////
//////////////////////// RSS Feed custom //////////////////////////
/////////////////////////////////////////////////////////////////////
add_action( 'init', 'custom_rss_template' );
function custom_rss_template() {
	add_feed( 'customfeed', 'customfeed_custom_rss_render' );
}
function customfeed_custom_rss_render() {
	get_template_part( 'rss', 'customfeed' );
}

Fatto questo dobbiamo creare il file del template, con la relativa struttura, quindi sempre dentro la cartella del tema creiamo un file chiamato “rss-customfeed.php”.

Ora strutturiamo il template con il seguente codice, e personalizziamolo come meglio crediamo:

<?php
/**
 * RSS 0.92 Feed Template for displaying RSS 0.92 Posts feed.
 *
 * @package WordPress
 */

header('Content-Type: ' . feed_content_type('rss') . '; charset=' . get_option('blog_charset'), true);
$more = 1;
$postCount = 10;
$posts = query_posts('showposts='.$postCount.'&posts_per_page='.$postCount.'&ignore_sticky_posts=1');

echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
<channel>
    <title><?php bloginfo_rss('name'); ?> - Feed</title>
    <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
    <link><?php bloginfo_rss('url') ?></link>
    <description><?php bloginfo_rss('description') ?></description>
    <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
    <language><?php echo get_option('rss_language'); ?>it-it</language>
    <sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
    <sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
    <?php /** * Fires at the end of the RSS Feed Header. * * @since 2.0.0 */ do_action( 'rss_head' ); ?>

<?php while (have_posts()) : the_post(); ?>
<?php foreach((get_the_category()) as $category) { ?>
    <item>
        <title><?php the_title_rss(); ?></title>
        <category><?php echo $category->cat_name ?></category>
        <link><?php the_permalink_rss(); ?></link>
        <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
        <guid isPermaLink="false"><?php the_guid(); ?></guid>
        <description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
        <enclosure url="<?php the_post_thumbnail_url('medium'); ?>" type="image/*" length="0"/>
        <?php rss_enclosure(); ?>
        <?php do_action('rss2_item'); ?>
    </item>
<?php } ?>
<?php endwhile; ?>
</channel>
</rss>

Il feed è settato per mostrare gli ultimi 10 articoli pubblicati, se vogliamo modificare solo il numero di feed mostrati basta modificare il valore della variabile “$postCount”.

Nel caso di ulteriore personalizzazione della query, non eliminate questo valore “ignore_sticky_posts=1”.

Per visualizzare e testare il feed non ci resta che aprirlo da browser al proprio indirizzo, del tipo:

www.sitoweb.dot/feed/customfeed/

Nel feed oltre le normali informazioni è stata introdotta anche l’immagine in evidenza e la relativa categoria associata per ogni articolo! Prima di pubblicare il Feed consigliamo di effettuare un controllo di validazione sul sito W3C.

Se avete dei problemi con i feed o delle dubbi e domande fateci sapere!

 

Seguiteci anche su Facebook, Google Plus, Tumblr e Twitter, per restare sempre in contatto con noi e con le nostre guide.

Web Developer da oltre 10 anni e Blogger. Ogni giorno si applica al perfezionamento e all’apprendimento in campo informatico, di comunicazione e di marketing.



Cerca

Seguici

Live da Facebook
Live da Twitter
Seguici su Telegram
Canale InsiDevCode Telegram
Google Plus

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. 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