);
}
public function widget($args, $instance) {
echo $args[‘before_widget’];
$title = apply_filters(‘widget_title’, $instance[‘title’]);
$feeds = !empty($instance[‘feeds’]) ? explode(“\n”, $instance[‘feeds’]) : array();
if (!empty($title)) {
echo $args[‘before_title’] . esc_html($title) . $args[‘after_title’];
}
echo ‘
-
- ‘;
foreach ($feeds as $feed_url) {
$feed_url = trim($feed_url);
if (empty($feed_url)) continue;
$rss = fetch_feed($feed_url);
if (!is_wp_error($rss)) {
$maxitems = $rss->get_item_quantity(5);
$items = $rss->get_items(0, $maxitems);
if ($maxitems == 0) {
echo ‘
-
- No items found in feed: ‘ . esc_html($feed_url) . ‘
‘;
} else {
foreach ($items as $item) {
$title = esc_html($item->get_title());
$link = esc_url($item->get_permalink());
echo ‘
‘;
}
}
} else {
echo ‘
-
- Could not fetch feed: ‘ . esc_html($feed_url) . ‘
‘;
}
}
echo ‘
‘;
echo $args[‘after_widget’];
}
public function form($instance) {
$title = !empty($instance[‘title’]) ? $instance[‘title’] : __(‘Headlines’, ‘text_domain’);
$feeds = !empty($instance[‘feeds’]) ? $instance[‘feeds’] : “https://rss.cnn.com/rss/edition.rss\nhttps://feeds.bbci.co.uk/news/rss.xml”;
?>
get_field_id(‘title’)); ?>”
name=”” type=”text”
value=”“>
}
public function update($new_instance, $old_instance) {
$instance = array();
$instance[‘title’] = sanitize_text_field($new_instance[‘title’]);
$instance[‘feeds’] = sanitize_textarea_field($new_instance[‘feeds’]);
return $instance;
}
}
// Register the widget
function register_multi_rss_headlines_widget() {
register_widget(‘Multi_RSS_Headlines_Widget’);
}
add_action(‘widgets_init’, ‘register_multi_rss_headlines_widget’);






