J'essaie d'afficher plusieurs flux à l'aide de la fonction fetch_feed. Cela fonctionne bien jusqu'à présent, sauf que je ne comprends pas pourquoi le titre de chaque flux RSS n'apparaîtra pas. Voici mon code:
<?php // Get RSS Feed(s)
include_once(ABSPATH . WPINC . '/feed.php');
$rsslist = array( 'http://www.lt11.com/rss',
'http://feeds.feedburner.com/climbingnarc'
);
$rss = fetch_feed($rsslist);
if (!is_wp_error( $rss ) ) :
$maxitems = $rss->get_item_quantity(25);
$rss_items = $rss->get_items(0, $maxitems);
endif;
?>
<?php if ($maxitems == 0) echo '<li>No items.</li>';
else
foreach ( $rss_items as $item ) : ?>
<li class="feed">
<a href='<?php echo esc_url( $item->get_permalink() ); ?>'
title='<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>'>
<?php echo esc_html( $item->get_date('j/n/Y - g:i A') ); ?> - <div class="feeditemtitle"><?php echo esc_html( $item->get_title() ); ?></div> - <?php echo esc_html($rss->get_title() ); ?></a>
</li>
<?php endforeach; ?>
C'est ce bit de liste qui appelle le titre du flux rss. Si je ne récupère qu'un seul flux, le titre s'affiche. Lorsque je récupère plus d'un flux, comme dans l'exemple ci-dessus, le titre ne s'affiche pas. Des idées pour résoudre le problème? Merci!
Je ne vois rien qui puisse suggérer que fetch_feed
est supposé accepter un tableau de valeurs. Cela n’est pas mentionné dans le Codex, ni dans la source, @param string $url URL to retrieve feed
.
Cela dit, fetch_feed
passe les choses à SimplePie set_feed_url($url);
qui accepte un tableau. Et je pense que la page de documentation de Simplepie est votre réponse. Le nom du flux RSS est $item->get_feed()->get_title()
et non $rss->get_title()
.
Je suis toujours un peu prudent car vous passez un tableau à travers une fonction WordPress qui ne semble pas être faite pour cela.
Afficher le code ci-dessus avec l'image sélectionnée ...
<div class="clearfix">
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$rsslist = array( 'http://www.bloggingwizard.com/feed',
'http://www.wpbeginner.com/feed/'
);
$rss = fetch_feed($rsslist);
if (!is_wp_error( $rss ) ) :
$maxitems = $rss->get_item_quantity(5);
$rss_items = $rss->get_items(0, $maxitems);
endif;
?>
<?php function get_first_image_url($html)
{
if (preg_match('/<img.+?src="(.+?)"/', $html, $matches)) {
return $matches[1];
}
}
?>
<?php if ($maxitems == 0) echo '<li>No items.</li>';
else
foreach ( $rss_items as $item ) : ?>
<div class="col-md-4">
<div class="rss-image" style="background-image: url('<?php echo get_first_image_url($item->get_content()) ?>');height: 200px;
background-size: cover;">
</div>
<a href='<?php echo esc_url( $item->get_permalink() ); ?>'
title='<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>'>
<div class="feeditemtitle">
<?php echo esc_html( $item->get_title() ); ?></div> <?php echo esc_html($rss->get_title() ); ?></a>
</div>
<?php endforeach; ?>
</div>