Afficher le contenu d’un flux rss sur son site, a l’aide d’un shortcode

Vous êtes hôteliers, et vous souhaitez afficher les flux rss des dernières actualités et événements de votre région sur une page de votre site Internet créé avec WordPress ?

Alors cet article va vous intéresser !

Peu importe votre secteur d’activité, avec le Shortcode WordPress ci-dessous, vous allez pouvoir afficher n’importe quel flux rss sur n’importe quelle page ou article de votre site Internet.

Le code suivant est à insérer dans le fichier functions.php, sur votre serveur.

 

function theme_fluxrss_shortcode( $atts, $content = null ) {
extract( shortcode_atts( array(
	    "urlflux" => '',
	), $atts));

    include_once(ABSPATH . WPINC . '/feed.php');
    $rss = fetch_feed(''. $urlflux .'');
    if (!is_wp_error( $rss ) ) : 
    $maxitems = $rss->get_item_quantity(5); 
    $rss_items = $rss->get_items(0, $maxitems); 
endif;	

	if ($maxitems == 0) echo '<li>Pas d article pour le moment.</li>';
    else
    foreach ( $rss_items as $item ) :

		    $output .= '<ul id="flux-rss-cool">';
			$output .= '<li>';
		    $output .= '<div class="flux-rss">';
			$output .= '<ul class="list">';
		    $output .= '<li><h4><a target="_blank" href="' . $item->get_permalink() . '">' . $item->get_title() . '</a></h4>';
			$output .= '' . $item->get_description() . '</li></ul>';
			$output .= '</div>';
			$output .= '</li> ';
			$output .= '</ul>';
			$output .= '<div class="cb"></div>';

	endforeach;

	return $output;

}

add_shortcode( 'fluxrss', 'theme_fluxrss_shortcode' );

 

Ensuite, il vous suffira d’insérer le shortcode suivant dans n’importe quelle page de votre site Internet.

[flurss urlflux="l'url de votre flux rss"]

A vous de personnaliser l’affichage de votre flux, à l’aide de CSS.

Changez la variable $maxitems (qui est a 5) pour afficher plus de 5 flux.

Aller plus loin

Le Shortcode Flux Rss, utilise le service http://simplepie.org/, vous pourrez donc personnaliser l’affichage du flux à votre guise !

Exemple, si vous souhaitez limiter l’affichage de la description, avec la fonction « Shorten » :

function theme_fluxrss_shortcode( $atts, $content = null ) {

	extract( shortcode_atts( array(
	    "urlflux" => '',
	), $atts));
	function shorten($string, $length)
{
    // By default, an ellipsis will be appended to the end of the text.
    $suffix = '…';

    // Convert 'smart' punctuation to 'dumb' punctuation, strip the HTML tags,
    // and convert all tabs and line-break characters to single spaces.
    $short_desc = trim(str_replace(array("r","n", "t"), ' ', strip_tags($string)));

    // Cut the string to the requested length, and strip any extraneous spaces 
    // from the beginning and end.
    $desc = trim(substr($short_desc, 0, $length));

    // Find out what the last displayed character is in the shortened string
    $lastchar = substr($desc, -1, 1);

    // If the last character is a period, an exclamation point, or a question 
    // mark, clear out the appended text.
    if ($lastchar == '.' || $lastchar == '!' || $lastchar == '?') $suffix='';

    // Append the text.
    $desc .= $suffix;

    // Send the new description back to the page.
    return $desc;
}
	include_once(ABSPATH . WPINC . '/feed.php');
    $rss = fetch_feed(''. $urlflux .'');
    if (!is_wp_error( $rss ) ) : 
    $maxitems = $rss->get_item_quantity(5); 
    $rss_items = $rss->get_items(0, $maxitems); 
endif;	

	if ($maxitems == 0) echo '<li>Pas d article pour le moment.</li>';
    else
    foreach ( $rss_items as $item ) :

		    $output .= '<ul id="flux-rss-cool">';
			$output .= '<li>';
		    $output .= '<div class="flux-rss">';
			$output .= '<ul class="list">';
		    $output .= '<li><h4><a target="_blank" href="' . $item->get_permalink() . '">' . $item->get_title() . '</a></h4>';
			$output .= '' . shorten($item->get_description(), 27) . '</li></ul>';
			$output .= '</div>';
			$output .= '</li> ';
			$output .= '</ul>';
			$output .= '<div class="cb"></div>';

	endforeach;

	return $output;

}

add_shortcode( 'fluxrss', 'theme_fluxrss_shortcode' );

Amusez vous bien !
N’hésitez pas à publier vos commentaires si vous avez des remarques ou des questions !



Tags en relation

,

Laissez un commentaire



Pour afficher votre nom suivi de votre ancre de lien préférée, utilisez la syntaxe Nom@vos mots clés (ex: Mike@thème wordpress) dans le champ "Nom"