=== RSS Aggregator - RSS Import, News Feeds, Feed to Post, and Autoblogging ===
Contributors: RebelCode, jeangalea, markzahra, Mekku, gabygalea
Plugin URI: https://www.wprssaggregator.com
Tags: rss aggregator, news aggregator, autoblogging, feed to post, rss import
Requires at least: 4.0 or higher
Tested up to: 6.6.2
Requires PHP: 5.4
Stable tag: 4.23.13
License: GPLv3

The #1 WordPress RSS aggregator to quickly import RSS feeds, build a news aggregator, and for easy autoblogging.


== Description ==

WP RSS Aggregator is the perfect plugin to quickly import RSS feeds, build a news aggregator, and for easy autoblogging. 

This is why it is used on 60,000+ websites to aggregate and curate content from all over the web.


== WP RSS Aggregator: The original and still the most popular RSS import plugin for WordPress ==

Import and display RSS feeds anywhere on your site.

Set up any RSS feed once and let Aggregator do the rest automatically. Create a constant flow of fresh content to keep your audience engaged.

Whether you're [creating a news aggregator](https://www.wprssaggregator.com/how-to-start-a-news-aggregator-site/), sharing related posts, curating videos, or displaying a collection of articles, RSS is still the best way to do it. 

== Discover the power of Aggregator and RSS feeds ==

With more than a decade of experience in the aggregator and RSS space, we've built WP RSS Aggregator to be your ideal partner for autoblogging, [content hubs](https://www.wprssaggregator.com/content-hub/), and news aggregators of all kinds. Here are our [main features](https://www.wprssaggregator.com/extensions/):

🚀 **Quick Setup**: Add RSS feeds from unlimited sources in seconds, whether for news feeds, blog posts, or anything else.

🔎 **RSS Feed Auto-Discovery**: Enter a website's URL and let WP RSS Aggregator find the RSS feed.

🚦 **[Manage Your Sources](https://www.wprssaggregator.com/extension/categories/)**: Keep track of your RSS feed sources in one place. Monitor, pause, and track their automation.

🔄 **Auto-Updating Content**: Keep your website fresh with new content, both as an autoblog & to supplement existing content.

🛠 **Customizable Displays**: Showcase your RSS feeds in stylish templates that highlight the content you want to share.

🙋 **Built-In Attribution**: Automatically credit the original authors and content creators.

🎥 **Video Aggregator**: Import and share YouTube videos from any channel or user.

📊 **Optimize Performance**: Control the number of RSS feed items imported and stored on your site to keep it running smoothly.

🏗️ **Build It Your Way**: Use the WP RSS Aggregator block or [shortcode](https://kb.wprssaggregator.com/article/746-shortcode-wp-rss-aggregator) `[wp-rss-aggregator]` to display RSS feeds anywhere, using any site builder.


== WP RSS Aggregator is built with you in mind ==

There is a lot more to an RSS aggregator than meets the eye. Here are a few additional perks that make working with RSS feeds worth your while.

📈 **[SEO Benefits](https://www.wprssaggregator.com/rss-feed-seo/)**: Become an instant source of quality content, generate backlinks, and gain more trust in the eyes of search engines such as Google.

💡 **Generate Content Ideas**: Monitor your RSS feed sources and learn more about which content you should write yourself. Take inspiration and create original content.

🔗 **Custom RSS Feeds**: Create a custom RSS feed from imported RSS feed items to use anywhere you want.

🌍 **Multilingual Support**: Integrate with translation plugins to translate imported content into any language.

👨‍💻 **Extendable for Developers**: Do more with WP RSS Aggregator by using its selection of action and filter hooks.

💵 **Monetize Your Content**: Learn how to [make money with WordPress](https://www.wprssaggregator.com/monetize-wordpress/) by leveraging your content. 


== 🔑 Unlock Premium Upgrades ==

Your website deserves the best, so we've been building [premium upgrades](https://www.wprssaggregator.com/upgrade/) for WP RSS Aggregator since 2013 with the goal of helping you deliver the best experience possible to your visitors while improving your website's performance.

* **[Feed to Post](https://www.wprssaggregator.com/extension/feed-to-post/) (❤️ Most Popular)**: Automatically convert RSS feeds into WordPress posts, pages, or any custom post type.

* **[Full Text RSS Feeds](https://www.wprssaggregator.com/extension/full-text-rss-feeds/)**: Import the full content from sources that only provide RSS feed excerpts or are missing images.

* **[Curate Your Content](https://www.wprssaggregator.com/content-curation-examples/)**: Automatically or manually curate your content to only share the most relevant items on your site.

* **[Display Templates](https://www.wprssaggregator.com/extension/templates/)**: Attract more attention with stylish feed designs, including titles, excerpts, images, and attribution.

* **[Automated Filtering](https://www.wprssaggregator.com/extension/keyword-filtering/)**: Precisely control what content is imported and displayed using keywords, phrases, and tags.

* **[AI Integrations](https://www.wprssaggregator.com/integrations/)**: Use our WordAI and Spinner Chief integrations with Feed to Post to create original titles and content.

* **Custom Mapping**: Map custom fields from RSS feed sources to any custom field in your posts or pages.

Get access to all of these amazing features with our [Premium WP RSS Aggregator Plans](https://www.wprssaggregator.com/upgrade/).


== Why use WP RSS Aggregator? ==

People have built some wonderful projects using RSS feeds. Here's are a few we've highlighted over the years.

**Content Curation: [Personal Finance Blogs](https://www.wprssaggregator.com/case-study-personal-finance-blogs-content-curation/)**
"It has been approximately four and a half months since the launch. We’ve seen some **strong traffic growth** month over month. We’re up to over 10,000 page views a month, which is great for a new blog but also just any blog in general. In terms of the traffic, **we’re sending about 150 clicks to various posts and blogs** on a daily basis." - Erik Tozier ⭐️⭐️⭐️⭐️⭐️

**Industry News Aggregator: [World of WordPress](https://www.wprssaggregator.com/case-study-worldofwp-multilingual-news-aggregator/)**
"I was searching for a good plugin to aggregate all the feeds. WP RSS Aggregator has the functionality I was looking for. I’ve tried other plugins, but **this was the one I knew could do everything**. I get 150 visitors a day, so that’s probably 4,500 visitors per month, and I think maybe **99% of visitors land on one of the articles aggregated by the plugin**." - Ronald Heijnes ⭐️⭐️⭐️⭐️⭐️

**Content Syndication: [The Broker List](https://www.wprssaggregator.com/case-study-content-syndication-thebrokerlist/)**
"WP RSS Aggregator is **time-saving**. Our members love it because it doesn’t cause them any extra work. We can just pull their content in. Don’t hesitate! I would definitely work with Mark and his team. **They will give you 110%** and solve any issues you may have." - Linda Day Harrison ⭐️⭐️⭐️⭐️⭐️

**Local News Aggregator: [Bristol Today](https://www.wprssaggregator.com/bristol-today-case-study/)** 
"After identifying the news sources I wanted to link out to, I searched for the best possible way to create a reliable feed (and without ruffling any feathers!). Thankfully, RSS is still going strong and each of the sites had active feeds. After a bit of research, WP RSS Aggregator stood out as the leading WordPress plugin in the space and I was impressed with their product pages. - Ross Merritt ⭐️⭐️⭐️⭐️⭐️


Here are a few examples of RSS aggregator websites we've built ourselves:

* [WP News Desk](http://wpnewsdesk.com/) aggregates WordPress news, tutorials and more from over 100 trusted sources and organizes them into categories automatically.
* [Travel Blogger Community](http://travelbloggercommunity.com/) does something similar to share incredible blog posts from well-known travelers around the world.
* [Crypto Headlines](https://cryptoheadlines.com/youtube-videos/)' videos section shares YouTube video feeds from popular YouTubers in the Crypto space to keep readers informed.
* [Euro Finance Blogs](https://eurofinanceblogs.com/) curates content on investment, personal finance, and early retirement, similar to Erik's story above.

Browse through our [**Showcase**](https://www.wprssaggregator.com/showcase/) to see how WP RSS Aggregator is being put to great use on a large variety of WordPress sites, from CrossFit to celebrity news, and gaming to government updates.

*A word of advice: Don't steal other people's work; give credit where it's due. WP RSS Aggregator makes it super easy to automatically credit the original source for full attribution.*


== 5-star customer support ==

Our comprehensive [Knowledge Base](https://kb.wprssaggregator.com/) provides you with everything you need to install, set up and customize WP RSS Aggregator to your needs. You can also browse through a number of FAQs to get started.

If that doesn't do the trick, we provide support for the free version of WP RSS Aggregator via the [WordPress support forums](https://wordpress.org/support/plugin/wp-rss-aggregator), while for premium support and pre-sales questions you can contact us via our [premium support channel](https://www.wprssaggregator.com/contact/?utm_source=wordpress-dot-org&utm_medium=readme&utm_campaign=readme_contact_link&utm_content=contact_link).

Our plugin also includes a Help Beacon within your website's dashboard through which you can search our knowledge base without ever leaving your website's back-end.

== Additional information ==

We provide a [Feed Creator](http://createfeed.wprssaggregator.com/) service that allows you to generate full text RSS feeds from any webpage, even if it doesn't have its own RSS feed. It provides inline documentation on how to use the service.

Our terms & conditions can be found [here](https://www.wprssaggregator.com/terms-conditions/).

== High praise from trusted WordPress leaders ==

* [WP Mayor](http://www.wpmayor.com/rss-feeds-review-wp-rss-aggregator/)
* [Kinsta](https://kinsta.com/blog/wordpress-rss-feed/)
* [WPBeginner](https://www.wpbeginner.com/showcase/best-news-aggregator-websites-how-to-build-your-own/)
* [OSTraining](https://www.ostraining.com/blog/wordpress/wp-rss-aggregator/)
* [Toolset](https://toolset.com/2019/03/import-content-post-typewp-rss-aggregator/)
* [WP Explorer](https://www.wpexplorer.com/wp-rss-aggregator-review/)
* [MH Themes](https://mhthemes.com/blog/create-news-aggregator-site-with-wordpress/)
* [WPulsar](http://www.wpulsar.com/wp-rss-aggregator-plugin-feed-to-posts-keyword-filtering-review/)
* [MobiLoud](https://www.mobiloud.com/blog/wordpress-rss-aggregator/)
* [Cloudways](https://www.cloudways.com/blog/wp-rss-aggregator-plugin-rss-feed-importer-autoblogging-plugin/)
* [WPKube](http://www.wpkube.com/wp-rss-aggregator-wordpress-review/)
* [Kevin Muldoon](https://www.kevinmuldoon.com/wp-rss-aggregator-review/)

== Installation ==

**Installing and setting up the WP RSS Aggregator plugin:**

Method 1:

> 1. Go to the Plugins page in your WordPress site's dashboard.
> 2. Click the "Add New" button.
> 3. Search for "WP RSS Aggregator".
> 4. When found, click on the "Install" button, then hit the "Activate" button once it has installed.
> 5. Go to the RSS Aggregator menu item, then set up your [feed sources](https://docs.wprssaggregator.com/adding-a-feed-source-importing-as-feed-items/), [templates](https://kb.wprssaggregator.com/article/457-templates) and [general settings](https://docs.wprssaggregator.com/general-plugin-settings/).

Method 2:

> 1. Click on the "Download" button above.
> 2. Upload the wp-rss-aggregator.zip file to your site's `/wp-content/plugins/` directory via FTP.
> 3. Activate the WP RSS Aggregator plugin from the 'Plugins' section in your dashboard.
> 4. Go to the RSS Aggregator menu item, then set up your [feed sources](https://docs.wprssaggregator.com/adding-a-feed-source-importing-as-feed-items/), [templates](https://kb.wprssaggregator.com/article/457-templates) and [general settings](https://docs.wprssaggregator.com/general-plugin-settings/).

**Displaying the feed items**

Use the WP RSS Aggregator block or shortcode on any page or post to display the imported items.

Shortcode: `[wp-rss-aggregator]`

Each block or shortcode can use any template and it can also have its own [parameters](https://kb.wprssaggregator.com/article/54-displaying-imported-items-shortcode), such as selecting which sources to display items from, the maximum number of items to display, whether to use pagination, which page to show, and more.

Shortcode example with parameters: `[wp-rss-aggregator source="123" limit="5"]`

It is advisable to use the 'HTML' view of the editor when inserting shortcodes with parameters.

**Usage within theme files**

Here are two examples of a function call from within a theme's files:
`
<?php
wprss_display_feed_items( $args = array(
	'limit' => '8',
	'source' => '5,9'
	));
?>
`

OR

`<?php do_shortcode('[wp-rss-aggregator]'); ?>`


== Frequently Asked Questions ==

= What feed sources can I import items from? =

Any source with a valid RSS or XML feed can have its feed items imported by WP RSS Aggregator. Most sites provide RSS feeds right out the box as shown [here](https://kb.wprssaggregator.com/article/55-how-to-find-an-rss-feed). If you can't find an RSS feed, you may try to create one using [our free service](http://createfeed.wprssaggregator.com/).

- - -

= How do I display the imported feed items? =

Use the template of your choice to display imported items anywhere across your site. To show the items, you can use either one (or a combination) of the options below.

* Option 1: Use our [shortcode](https://kb.wprssaggregator.com/article/54-displaying-imported-items-shortcode) in your posts and pages: `[wp-rss-aggregator]`
* Option 2: Use our [block](https://kb.wprssaggregator.com/article/454-displaying-imported-items-block-gutenberg) in the Gutenberg editor (WP 5.0 and later)
* Option 3: Call the function directly within a theme: `<?php wprss_display_feed_items(); ?>`

- - -

= Is there a limit on the number of feed sources I can set up? =

No, there is no limit for the number of feed sources to import items from. Having many (50+) feed sources should not present any problems in itself. However, pulling in posts from many sites is bound to put your server under some stress, so you might want to consider using a hosting solution that goes beyond your typical shared host and [staggering the feed imports](https://kb.wprssaggregator.com/article/200-scheduling-fetching-of-feeds-imports-for-better-performance).

Check out our dedicated page on [WordPress hosting](https://www.wprssaggregator.com/recommended-web-hosts/?utm_source=wordpress-dot-org&utm_medium=readme&utm_campaign=readme_q-and-a_hosts&utm_content=q-and-a_hosts) recommendations (includes some affiliate links).

- - -

= Can I import the full text from any source site? =

In the majority of cases, this is possible using our Feed to Post and Full Text RSS feeds add-ons, both of which are part of our most popular bundle, the [Pro Plan](https://www.wprssaggregator.com/upgrade/?utm_source=wordpress-dot-org&utm_medium=readme&utm_campaign=readme_fulltextfaq).

- - -

= Can I add Twitter (now known as X) RSS feeds to my WordPress site? =

Creating Twitter RSS feeds for your WordPress site involves a few simple steps using third-party services since Twitter no longer offers native RSS feed support. Here’s a quick overview:

1. Select a Third-Party Service: Use an RSS feed generator such as RSS.app or Nitter to create your Twitter RSS feed. These platforms allow you to convert Twitter content into RSS feeds.

2. Generate Your Twitter RSS Feed: Follow the specific instructions on your chosen platform to generate the RSS feed URL for the Twitter content you wish to display.

3. Integrate with WP RSS Aggregator: Once you have your RSS feed URL, use WP RSS Aggregator on your WordPress site to add and configure your new feed source.

For detailed instructions, including step-by-step guidance, please visit [our full article on creating Twitter RSS feeds](https://www.wprssaggregator.com/twitter-rss/).

- - -

= How can I display the latest posts from a Facebook page on my WordPress site? =

To showcase the latest posts from a Facebook page on your WordPress site, you can create an RSS feed for that Facebook page using a third-party service like FetchRSS. Once you have the RSS feed URL, you can easily integrate this feed into your site using WP RSS Aggregator. For a detailed guide on generating the RSS feed and integrating it with WP RSS Aggregator, including step-by-step instructions, visit [our full article on how to create a Facebook RSS feed](https://www.wprssaggregator.com/facebook-rss-feed/).

- - -

= Does WP RSS Aggregator work using JSON as the source? =

No, our plugin does not currently import from JSON, it only imports from RSS and Atom structured XML.

- - -

= Why do I get "No feed items found" when I insert the shortcode on a page or post? =

1. Try adding a few more feed sources and make sure they are valid by using the RSS Feed Validator.

2. Make sure that feed items have been imported by visiting the Feed Items page.

3. Try out the solutions listed in our [Feed Items Not Importing](https://kb.wprssaggregator.com/category/80-feed-items-or-posts-not-importing) knowledge base section.

4. It's important to make sure your WordPress cron system is working well. If not, the feeds cannot be imported. If in doubt, you can install the WP Crontrol plugin to check for [bad cron](https://docs.wprssaggregator.com/cron-intervals/#bad-cron), or go to RSS Aggregator > Debugging and hit the red button to re-import all feed items.

If the problems persist, please [contact our support team](https://wordpress.org/support/plugin/wp-rss-aggregator). If you're using a premium add-on, please use the [premium support channel](https://www.wprssaggregator.com/contact/).

- - -

= Can I store imported feed items as Posts? =

Yes, you can do that using the [Feed to Post](http://www.wprssaggregator.com/extensions/feed-to-post/) premium add-on. You will not only be able to store items as posts, but as any post type. You can also set the author, set tags and categories, import images into the gallery or set featured images, and much more. These can then be displayed in your theme's blog page, via a page builder, etc. Add [Full Text RSS Feeds](http://www.wprssaggregator.com/extensions/full-text-rss-feeds/) into the mix for the most powerful combination of add-ons.

- - -

= Some RSS feeds only give a short excerpt when using the add-ons. Any way around that? =

Yes, along with the [Feed to Post](http://www.wprssaggregator.com/extensions/feed-to-post) add-on we have another add-on called [Full Text RSS Feeds](http://www.wprssaggregator.com/extension/full-text-rss-feeds/) that can get the full content of most feeds that only supply a short excerpt. The Full Text RSS Feeds add-on requires Feed to Post and a valid license key to function.

- - -

= Where can I find the documentation for the plugin? =

Our complete Knowledge Base with FAQs can be found [here](https://kb.wprssaggregator.com/).


== Screenshots ==

1. Feed items displayed using WP RSS Aggregator's templates.

2. Setting up the WP RSS Aggregator Gutenberg block.

3. Adding/Editing a feed source in WP RSS Aggregator.

4. The list of feed sources in WP RSS Aggregator.

5. The list of imported feeds items in WP RSS Aggregator.

6. Setting up a template in WP RSS Aggregator.

7. The general settings for WP RSS Aggregator.

8. Using the Feed to Post premium add-on to import items as posts.

9. Using the Feed to Post premium add-on to import YouTube videos.


== Changelog ==

= 4.23.12 (2024-07-15) =
**Fixed**
- Fixed a security vulnerability that allows subscribers to pause feed sources (CVE-2024-6621).

= 4.23.11 (2024-05-28) =
**Fixed**
- The previous version introduced a bug that omitted the user-agent header from RSS feed requests.

= 4.23.10 (2024-05-20) =
**Fixed**
- Some feeds were wrongly deemed to be invalid due to how cURL sends the user-agent string.

= 4.23.9 (2024-05-13) =
**Fixed**
- Fixed a cross-site scripting vulnerability when an admin notice ID is invalid.

= 4.23.8 (2024-04-25) =
**Added**
- Prepared notices and messages for the upcoming v5.0 update.

**Changed**
- Better error logging when a feed item fails to get saved.

**Fixed**
- Compatibility with PHP 8.x versions.
- Compatibility with the "Widget Options" plugin.

= 4.23.7 (2024-02-28) =
**Fixed**
- Media thumbnail images without a MIME type were not being properly detected.

= 4.23.6 (2024-01-31) =
**Changed**
- Error information is suppressed for feeds with local address URLs. This improves the previous fix for CVE-2024-0628.

= 4.23.5 (2024-01-24) =
**Fixed**
- Error messages no longer reveal information about potentially inaccessible resources. (CVE-2024-0628) 
- JavaScript code in feed item URLs is now properly sanitized and escaped. (CVE-2024-0630) 
- Word trimming did not work correctly when posts had leading whitespace.
- The Templates page did not load properly on some websites.

= 4.23.4 (2023-11-18) =
**Added**
- Black Friday offer links.

**Changed**
- Updated the "More Features" page.

= 4.23.3 (2023-11-01) =
**Changed**
- Disabled the deactivation poll.

= 4.23.2 (2023-09-29) =
**Added**
- An important notice regarding the upcoming major update that will require PHP 7.4 or higher.

**Changed**
- Twig date translation can now be disabled using the `wpra/twig/use_translations` filter.

**Fixed**
- Some PHP 8 compatibility issues.
- Corrected how image are searched in the content and excerpt of an item.

= 4.23.1 (2023-04-10) =
**Fixes**
- Fixed an error in the block that prevented it from being edited and previewed.

= 4.23 (2023-04-06) =
**Added**
- New users can now sign up to receive a free starter guide.
- YouTube feeds now provide the video description, which is now imported into feed items.

**Changed**
- Links to the pricing page for premium plans have been replaced with links to a new "upgrade" page.

**Fixes**
- Fixed a conflict with some themes and their front-end search capabilities.
- The on-boarding wizard now correctly shows up for new users only.
- Sorting feed items by date now works as expected.

= 4.22.4 (2023-02-08) =
**Added**
- Images in RSS item excerpts are now properly detected.
- New `wpra/images/file_name` filter to change the filename of imported images.

= 4.22.3 (2023-02-01) =
**Added**
- New filter to disable the scrolling animation when clicking on pagination links in templates. [See docs](https://kb.wprssaggregator.com/article/861-disable-the-pagination-scroll-effect).

= 4.22.2 (2022-12-19) =
**Changed**
- Code changes for PHP 8.0 compatibility.
- Code changes for partial PHP 8.1 compatibility. The plugin still triggers some warnings on PHP 8.1, but should work fine.

**Removed**
- Removed the Black Friday and Cyber Monday promotion banners.
- Removed the 2022 feedback survey.

= 4.22.1 (2022-11-23) =
**Added**
- Promotion for Black Friday and Cyber Monday 2022 deals.
- Notification for the 2022 feedback survey.

**Fixed**
- The custom feed was missing the `<published>` date tag.

= 4.22 (2022-08-06) =
**Changed**
- YouTube embeds in the lightbox now begin playing automatically, if the browser allows it.

= 4.21.1 (2022-07-20) =
**Fixed**
- An out-of-memory PHP error when importing items.

= 4.21 (2022-07-13) =
**Changed**
- Updated Twig to v1.42.2, to support PHP 8 or later.
- Optimized feed item date processing when an item is being imported.
- Permalink and GUID checks are now done across all feed sources when an item is being imported.

**Fixed**
- Various PHP 8 errors and deprecations compatibility.
- The classic editor button was generating incorrect shortcodes.

= 4.20 (2022-01-18) =
**Added**
- New option to use feed item GUIDs instead of permalinks to detect duplicate items.

**Changed**
- Small performance improvement when importing feed items.

**Fixed**
- A warning about `get_headers()` only working with URLs.
- A warning about iteration over a non-array value.
- An AJAX XSS vulnerability on the Feed Sources page. Thanks WPScan!

= 4.19.3 (2021-11-24)
**Fixed**
- An error during cron schedule filtering.
- Not all image URLs in enclosure tags were being detected.

= 4.19.2 (2021-10-28)
**Changed**
- Cleaned up the code significantly.
- Consistent permalink normalization between the preview and importing.
- Some plugin strings were not internationalized.
- Source information is extracted from feed items more reliably.
- Audio links in feed items are detected more reliably.
- Enclosure images in feed items are detected more reliably.

**Fixed**
- HTML entities caused unique title checks to always fail.
- Some request data was not filtered and/or sanitized properly.
- Some plugin-generated content was not properly escaped for use in HTML.
- URLs added manually to the blacklist are now properly validated.
- Feed sources and feed items restored from the trash become "draft" since WordPress 5.6.

= 4.19.1 (2021-09-14)
**Changed**
- More details are now logged when a fatal error occurs during an import.
- Using local versions of images and stylesheets.

**Fixed**
- Importing would sometimes fail when trying to fetch the media:thumbnail image.
- Some request data was not filtered and/or sanitized properly.
- Some plugin-generated content was not properly escaped for use in HTML.

= 4.19 (2019-07-06)
**Added**
- Support for importing images from `<image>` tags.

**Changed**
- Exceptions thrown during an import and caught and logged.

= 4.18.2 (2021-04-26) =
**Changed**
- Audio players no longer preload the audio file. Audio is now loaded only the play button is clicked.

**Fixed**
- Pagination would sometimes cause the page to scroll upwards.
- Images were wrongly determined to be from Facebook and were being renamed incorrectly.
- Invalid cron schedules no longer cause a fatal error.
- The shortcode icon in the classic editor would sometimes not be shown.

= 4.18.1 (2021-03-15) =
**Added**
- New filters to change the time limits during image downloads.

**Changed**
- Using a single store URL for addon license verification.
- Increased the PHP execution time limits for image downloads.

**Fixed**
- Licenses for the Templates addon could not be verified.

= 4.18 (2021-03-08) =
**Added**
- The total import time is now recorded in the debug log.

**Changed**
- Omitting dev files from the plugin, reducing its size.
- Redesigned the "More Features" page.
- Feed items link to the original article when shown without a template and in RSS feeds.
- Allocating more PHP execution time for image downloads.

**Fixed**
- Images with HTML entities in the URL resulted in broken images and missing featured images.
- The code that checks when a feed is saved no longer runs unnecessarily.
- Fixed styling issues with the "Save" button in the Templates edit page.
- The max title length option in the "Default" template was being applied in the "Feed Items" page.

= 4.17.10 (2020-12-01) =
**Fixed**
- After updating the Templates add-on from v0.2, the add-on would be deactivated.

= 4.17.9 (2020-11-25) =
**Changed**
- Auto image detection is now able to find the feed channel image.
- SimplePie auto-discovery is turned off when the "Force feed" option is enabled.
- The Feed Source post type is no longer public.
- Meta box styling has been updated to match WordPress 5.3's updated styles.

**Fixed**
- Removed referer header from feed requests, fixed importing for some feeds.
- Feeds that contain items without titles no longer only import just the first item.
- Cron jobs are properly added/removed when the plugin is activated/deactivated, respectively.
- Problems with the default template no longer trigger a fatal error.

= 4.17.8 (2020-10-06) =
**Changed**
- Disabled SimplePie's HTML sanitization.
- Updated jQuery code to be compatible with the upcoming update in WordPress.
- Images without an extension can now be imported.
- The image importing function now allows the image URL and local path to be changed via filters.
- Changed how item importing is logged in the debugging log. The log now shows what hooks can reject an item.

**Fixed**
- WooCommerce Product type dropdown and accompanying options disappear while WP RSS Aggregator is active.
- Addressed notices about `register_rest_route` being called incorrectly.
- The "Validate feed" link did not work.
- Sites on a multi-site network would see an error about a function not existing.
- Errors would not be properly rendered for non-fatal notices and warnings.

= 4.17.7 (2020-08-12)
**Added**
- New HTML classes for pagination buttons.

**Fixed**
- The featured image when using the Feed to Post add-on was not being saved.

**Changed**
- FeedBurner feeds no longer need to have "format=xml" at the end of the URL.

= 4.17.6 (2020-07-29) =
**Added**
- A link in the New/Edit Feed Source page on how to find an RSS feed.

**Changed**
- The "Force feed" option turns off SSL verification.
- Improved wording on the Help page.
- Dates in templates can now be translated.
- The link to the article on how to find an RSS feed now links to an article from the plugin's knowledge base.
- The "Unique Titles" feed option can now be set to default to the global setting.

**Fixed**
- Rewrite rules would always get flushed when plugins tamper with them, such as Polylang Pro.
- The "Delete All Imported Items" reset option was deleting all posts on the site.
- Image options would not show up when using Feed to Post to import Feed Items.

= 4.17.5 (2020-04-22) =
**Changed**
- Now showing a case study of a site using the Pro Plan in the on-boarding wizard.
- Licenses are now managed by the main site. Child sites do not have access to the licenses page.

**Fixed**
- The custom feed did not include items imported as posts or other post types.

**Removed**
- Temporarily disabled the "What's New" page.
- Removed the integration with Lorem on the "Help & Support" page.
- Removed the integration with Lorem on the "More Features" page.

= 4.17.4 (2020-03-16) =
**Changed**
- The default template is now created based on type, not slug.

**Fixed**
- Templates could not be saved if the request contained extra form data.
- The default template would be copied multiple times if a post on the site had the "default" slug.
- Feed item title did not escape HTML entities correctly.
- Source name and link were sometimes incorrect in the custom feed.
- Undefined index during error handling.
- Better error messages when an error occurs.

= 4.17.3 (2020-01-23) =
**Changed**
- Updated code to fix deprecation warnings on PHP version 7.4 and later.
- Updated the Twig library to version `1.41.0` to fix deprecation warnings on PHP version 7.4 and later.
- Updated the default translation files to contain up-to-date text.

**Fixed**
- Removed a false-positive error from the log.
- Localization in Twig templates did not work.
- When revisions are enabled, an error would prevent feed sources from being saved.
- Translations were being loaded from an invalid path.
- The default featured image in the New/Edit Feed Source page did not preview after saving the feed source.
- Missing space between the link `a` tag and the `href` attribute on PHP 7.4

= 4.17.2 (2019-12-19) =
**Added**
- The error handler now includes the file and line where the error occurred.

**Changed**
- The obsolete "Link Source" option is now only shown when the Excerpts & Thumbnails add-on is active.

**Fixed**
- The new "feeds" shortcode parameter only showed feed items for the first 10 feed sources.

= 4.17.1 (2019-12-12) =

**Fixed**
- The new slug option was appearing on the edit pages for posts of all types.

= 4.17 (2019-12-11) =

**Added**
- New "Tools" that replaces the "Blacklist", "Import/Export" and "Debugging" pages.
- New option to control whether items with future dates are scheduled or published with truncated dates.
- New "feeds" shortcode parameter to select feed sources by their slug names.
- New "1 week" update interval option to update feeds once every week.
- The "Edit Feed Source" page now allows the slug to be edited.
- The "Edit Feed Source" page now shows shortcode snippets.

**Changed**
- RSS feeds that are invalid due to leading whitespace are now trimmed and may now be imported.
- Images that have the same URL are now downloaded to the media library only once.
- Updated some styles to match the new WordPress 5.3 aesthetic.
- Optimized template saving to be more performant and less error prone.
- Improved error messages in REST API responses.
- Removed some log messages.
- Fatal errors are now always logged.
- Optimized cron-related functionality.
- The plugin will no longer register cron schedules that already exist.
- License-related notices are now only shown to users who have access to the Licenses settings page.

**Fixed**
- The "Import Source" option did not work.
- Templates now link imported posts to the local post instead of to the original article.
- Images with HTML entities in the URL could not be downloaded.
- Feed items without a PolyLang translation did not show up in templates.
- PHP notices were triggered when trying to download invalid images.
- The feed item count in the "Feed Sources" page would show zero when certain add-ons are installed.
- Removed a warning shown in templates about `reset()` expecting an array.
- Thumbnails imported by Excerpts & Thumbnails were not shown in templates.
- Some databases would report the following error during logging: "Column 'date' cannot be null".
- Unserializing the options for the system info triggered PHP notices.
