dodecastudio / craft-feedreader
A simple plugin to load and display RSS and Atom feeds in Craft CMS templates.
Installs: 1 424
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 1
Open Issues: 0
Language:Twig
Type:craft-plugin
Requires
- php: >=7.4
- craftcms/cms: ^3.0|^4.0|^5.0
- guzzlehttp/guzzle: ^7.2.0
- laminas/laminas-feed: >=2.17.0
This package is auto-updated.
Last update: 2024-12-22 15:41:45 UTC
README
Requirements
- Craft CMS 3.X, 4.X or 5.X
- PHP 7.4+
Installation
Install the plugin as follows:
-
Open your terminal and go to your Craft project:
cd /path/to/project
-
Then tell Composer to load the plugin:
composer require dodecastudio/craft-feedreader
-
In the Control Panel, go to Settings → Plugins and click the “Install” button for FeedReader.
Overview
The FeedReader plugin makes use of Craft's built-in Feeds API to load and display RSS or Atom feeds directly in templates. As the Feeds API was deprecated in Craft 4, this plugin borrows the original code from Craft 3 in order to ensure function across both these versions of Craft.
Using FeedReader
Fetching a feed
The getFeed
variable will fetch a feed and return feed information and feed items as an array.
{% set newsFeed = craft.feedreader.getFeed("http://feeds.bbci.co.uk/news/uk/rss.xml", 43200, true) %}
You can then output information about the feed and the items it contains, like so:
{# Output feed info #} <h1>{{ newsFeed.title }}</h1> <p>Feed: <a href="{{ newsFeed.link }}">{{ newsFeed.link }}</a></p> {# Output the feed items #} <ul> {% for newsItem in newsFeed.items %} <li> <a href="{{ newsItem.permalink }}">{{ newsItem.title }}</a> - {{ newsItem.date.date|date("Y-m-d H:i:s") }} </li> {% endfor %} </ul>
Supported parameters
The parameters available for the getFeed
variable are:
Fetching feed items
If you don't need feed information and would like a little bit more control over the feed items, then the getFeedItems
variable will fetch feed items and return them as an array.
{% set newsFeedItems = craft.feedreader.getFeedItems("http://feeds.bbci.co.uk/news/uk/rss.xml", 10, 10, 1000, true) %}
You can then output the items, like so:
{# Output the feed items #} <ul> {% for newsItem in newsFeedItems %} <li> <a href="{{ newsItem.permalink }}">{{ newsItem.title }}</a> - {{ newsItem.date.date|date("Y-m-d H:i:s") }} </li> {% endfor %} </ul>
Supported parameters
The parameters available for the getFeedItems
variable are:
Plugin Settings
Default settings can be overridden. Please see the feedreader-config.php
file for details.