octobre 13

Créer une page de flux RSS

Des plugins permettent d’insérer, via un shortcode, un flux RSS externe dans une page de WordPress.

mais on peut préférer ce passer de plugin et créer de toute pièce, une page dédié dans le thème de WordPress.

1er méthode

Créer un fichier dans le thème du style « page-flux-rss.php »
Copier/coller dedans le code HTML d’une autre page du thème (histoire de récupérer header/footer et sidebar)

Au tout début du code (avant header) coller :

<?php
include_once(ABSPATH.WPINC.'/rss.php'); // path to include script
$feed = fetch_rss('http://gplusrss.com/rss/feed/7d07dc8d4308389a4f38848524174fdc525a7c81279de'); // url du flux
$items = array_slice($feed->items, 0, 10); // 1er et dernier item
?>

A l’endroit habituel du contenu, inséré :

<?php if (!empty($items)) :
foreach ($items as $item) :
$date = substr($item['pubdate'], 4, 13); // afficher: jour, mois, année
// conversion en Franþais
setlocale(LC_TIME, 'fr_FR.UTF8');
setlocale(LC_TIME, 'fr_FR');
setlocale(LC_TIME, 'fr');
setlocale(LC_TIME, 'fra_fra');
$date_fr = strftime('%d %B %Y'); 
   // affichage sur la page       
?>
<div id="FluxRSS""><?php echo $item['description']; ?></div><!-- titre, lien vers article et image-->
<p style="text-align: right;"><span>Publié le : </span><span><?php echo $date; ?></span></p>
<p style="margin-bottom: 25px;"></p>
<?php endforeach;
endif; 
?>
</div>

A ce stade, la page est visible à l’adresse : www.mon-site.com/wp-content/wp/themes/mon-theme/page-flux-rss.php.

Pour que l’adresse soit plus simple et bien intégré à WordPress, créer une page avec un titre comme bon vous semble, et éditer le permalien en indiquant « flux-rss » (affin d’appeler la page éponime).
Publier la page et créer un lien vers celle-çi dans le menu du site.

Le code généré (dans mon cas le flux vient de Google+, via GplusRSS (voir article sur le sujet):

<div class="attachments">
<p class="attachment article">
<p class="attachment_article_content">
<p></p>

Avantage, le lien dirige vers l’article original et non vers l’item de ma page Google+

Librement inspiré de : perishablepress.com

Perso, j’ai eu parfois des erreurs PHP sur la page, j’ai donc dégoté une autre méthode.

2em méthode

Créer un fichier dans le thème du style « page-flux-rss.php »
Copier/coller dedans le code HTML d’une autre page du thème (histoire de récupérer header/footer et sidebar)

Insérer ce code

<h3 id="TitrePage"><?php echo get_the_title('2301'); ?></h3>

<div>
    <?php
    $rss = new DOMDocument(); //service de conversion G+ en flux RSS
    $rss->load('http://gplusrss.com/rss/feed/7d07dc8d4308389a4f38848524174fdc525a7c81279de');
    $feed = array();
    foreach ($rss->getElementsByTagName('item') as $node) {
    $item = array (
    'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
    'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
    'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
    'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
    );
    array_push($feed, $item);
    }
    $limit = 10; //limite impose par gplusrss.com
    for($x=0;$x<$limit;$x++) {
    $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
    $link = $feed[$x]['link'];
    $description = $feed[$x]['desc'];
    $date = date('d-Y', strtotime($feed[$x]['date']));
    // conversion en Franþais
    setlocale(LC_TIME, 'fr_FR.UTF8');
    setlocale(LC_TIME, 'fr_FR');
    setlocale(LC_TIME, 'fr');
    setlocale(LC_TIME, 'fra_fra');
    $date_fr = strftime('%d %B %Y'); 
    // affichage sur la page       
    echo '<h4><a href="'.$link.'" title="'.$title.'" style="text-decoration: none;">'.$title.'</a></h4>';  
    echo '<p>'.$description.'</p>';
    echo '<p style="color: grey;"> Publi&eacute; le '.$date_fr.'</p>'; 
    echo '<hr />';
    echo '<p> </p>';
    }
    ?>
</div>

Indiquer évidement votre propre flux RSS, le « get_the_title » doit indiquer l’ID de la page.

Personnalisez le CSS comme souhaitez.

Source


Étiquettes :
Copyright 2019. All rights reserved.

Ecrit 13 octobre 2013 par Pit dans la catégorie "WORDPRESS