{"id":340919,"date":"2026-07-19T12:13:47","date_gmt":"2026-07-19T12:13:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/rss-news-feeder\/"},"modified":"2026-07-19T12:13:21","modified_gmt":"2026-07-19T12:13:21","slug":"newsknit-rss","status":"publish","type":"plugin","link":"https:\/\/lt.wordpress.org\/plugins\/newsknit-rss\/","author":23533174,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0","stable_tag":"1.0","tested":"7.0.2","requires":"","requires_php":"7.4","requires_plugins":null,"header_name":"Newsknit RSS","header_author":"CS-Plugins-UK","header_description":"An easy-to-use RSS engine with multi-group feed support, custom keyword filtering per group, layout toggles (List\/Grid), AJAX pagination, and curated per-group RSS output.","assets_banners_color":"","last_updated":"2026-07-19 12:13:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"cspluginsuk","date":"2026-07-19 12:13:21"}},"upgrade_notice":{"1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":{"csrkk\/news-feed":{"name":"csrkk\/news-feed","title":"RSS News Feed"}},"tagged_versions":["1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[5636,252,1248,850,162],"plugin_category":[43],"plugin_contributors":[272315],"plugin_business_model":[],"class_list":["post-340919","plugin","type-plugin","status-publish","hentry","plugin_tags-aggregator","plugin_tags-feed","plugin_tags-news","plugin_tags-rss","plugin_tags-widget","plugin_category-customization","plugin_contributors-cspluginsuk","plugin_committers-cspluginsuk"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/newsknit-rss.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Newsknit RSS pulls articles from any number of RSS\/Atom feeds, groups them into named collections (\"feed groups\"), and displays each group as a filtered, paginated news feed anywhere on your site. Each group has its own list of source feeds, its own keyword filtering rules, its own layout, and its own cache schedule \u2014 so you can run, for example, a \"Tech\" group and a \"Sports\" group side by side with completely different sources and rules.<\/p>\n\n<p>Feeds are fetched server-side, cached, scored against your keyword rules, deduplicated, and rendered as a list or grid of article cards with thumbnails and excerpts. Output is available via shortcode, Gutenberg block, classic widget, Elementor widget, WPBakery element, or as the plugin's own curated RSS output.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Organize feeds into groups<\/strong> \u2014 group your RSS sources by topic and give each group its own settings.<\/li>\n<li><strong>Filter out what you don't want<\/strong> \u2014 comma-separated keyword lists to boost relevant stories and filter out clickbait or off-topic content.<\/li>\n<li><strong>List or grid layout<\/strong> \u2014 display as a list or card-style grid, sorted by newest first or by relevancy score.<\/li>\n<li><strong>Load more without reloading the page<\/strong> \u2014 numbered pagination or a \"Load More\" button on desktop; automatic infinite scroll on mobile.<\/li>\n<li><strong>Filter by source<\/strong> \u2014 quick buttons to show articles from just one source at a time.<\/li>\n<li><strong>Your own RSS feed<\/strong> \u2014 every group can be shared as its own clean RSS link at <code>\/csrkk-feed\/{group-slug}\/<\/code>.<\/li>\n<li><strong>Fast loading, always up to date<\/strong> \u2014 articles are fetched and cached ahead of time on a schedule, so pages load quickly.<\/li>\n<li><strong>See which feeds are working<\/strong> \u2014 an at-a-glance health status for every source feed in a group.<\/li>\n<li><strong>Refresh with one click<\/strong> \u2014 purge a single group's cache or all caches from settings or the admin toolbar.<\/li>\n<li><strong>Automatic thumbnails<\/strong> \u2014 pulled in from each feed, with a fallback image and optional local thumbnail caching.<\/li>\n<li><strong>Only show recent articles<\/strong> \u2014 set a cutoff date, or default to a rolling 28-day window.<\/li>\n<li><strong>Article previews<\/strong> \u2014 optional excerpts with a configurable length.<\/li>\n<li><strong>No duplicate stories<\/strong> \u2014 automatic deduplication across a group's feeds.<\/li>\n<li><strong>Add it anywhere<\/strong> \u2014 shortcode, Gutenberg block, classic widget, Elementor widget, or WPBakery element.<\/li>\n<li><strong>Back up or move your feeds<\/strong> \u2014 JSON export\/import of your full configuration, plus OPML import\/export.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install it directly through <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong> in wp-admin.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>On activation, the plugin automatically registers its rewrite rule (for the <code>\/csrkk-feed\/{slug}\/<\/code> curated feeds) and schedules its hourly cache-warming cron job \u2014 no manual setup is required.<\/li>\n<li>Go to the new <strong>Newsknit RSS<\/strong> menu item in the admin sidebar and create your first feed group: give it a label\/slug, paste in one or more RSS\/Atom feed URLs (one per line), and save.<\/li>\n<li>Display the group anywhere using the shortcode, block, widget, or page-builder element, referencing the group's slug.<\/li>\n<\/ol>\n\n<p>Elementor and WPBakery integrations only appear if those page builders are already installed and active \u2014 neither is required to use the plugin.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20elementor%20or%20wpbakery%20to%20use%20this%20plugin%3F\"><h3>Do I need Elementor or WPBakery to use this plugin?<\/h3><\/dt>\n<dd><p>No. The shortcode, Gutenberg block, and classic widget all work standalone. The Elementor widget and WPBakery element are optional integrations that only register themselves if those builders are active.<\/p><\/dd>\n<dt id=\"how%20often%20do%20feeds%20refresh%3F\"><h3>How often do feeds refresh?<\/h3><\/dt>\n<dd><p>Each group has its own cache duration (in hours, default 3). An hourly background cron job checks every group and re-fetches any whose cache has expired, so visitors always see a pre-warmed cache rather than waiting on a live fetch.<\/p><\/dd>\n<dt id=\"can%20i%20show%20more%20than%20one%20group%20on%20the%20same%20page%3F\"><h3>Can I show more than one group on the same page?<\/h3><\/dt>\n<dd><p>Yes \u2014 add multiple shortcode\/block\/widget instances, each pointing at a different group slug.<\/p><\/dd>\n<dt id=\"how%20does%20the%20anti-clickbait%20filter%20work%3F\"><h3>How does the anti-clickbait filter work?<\/h3><\/dt>\n<dd><p>It's a list of negative keywords per group. Any match subtracts from an article's score; combined with your minimum score threshold, this excludes articles that trip your negative terms. A lower threshold lets more articles through, a higher one shows fewer. The filter can be switched off per group without deleting the saved keyword list.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20%22score%22%20and%20%22newest%20first%22%20sorting%3F\"><h3>What's the difference between \"score\" and \"newest first\" sorting?<\/h3><\/dt>\n<dd><p>\"Newest first\" sorts strictly by publish date. \"Relevancy score\" sorts by the keyword score computed from your group's positive\/negative terms (falling back to date as a tiebreaker).<\/p><\/dd>\n<dt id=\"can%20i%20get%20a%20group%20as%20a%20plain%20rss%20feed%3F\"><h3>Can I get a group as a plain RSS feed?<\/h3><\/dt>\n<dd><p>Yes \u2014 every group is available at <code>\/csrkk-feed\/{group-slug}\/<\/code>, a standard RSS 2.0 feed containing the group's curated (filtered, deduplicated) articles.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20one%20of%20my%20source%20feeds%20goes%20down%3F\"><h3>What happens if one of my source feeds goes down?<\/h3><\/dt>\n<dd><p>That feed is skipped for that fetch cycle and marked with an error status (visible in the group's feed health list in wp-admin); the rest of the group's feeds are unaffected.<\/p><\/dd>\n<dt id=\"does%20this%20work%20well%20on%20mobile%3F\"><h3>Does this work well on mobile?<\/h3><\/dt>\n<dd><p>Yes \u2014 regardless of a group's desktop pagination setting (numbered pages or a manual \"Load More\" button), mobile visitors always get automatic infinite scroll.<\/p><\/dd>\n<dt id=\"can%20i%20migrate%20my%20feed%20groups%20to%20another%20site%3F\"><h3>Can I migrate my feed groups to another site?<\/h3><\/dt>\n<dd><p>Yes, two ways: use the plugin's own JSON export\/import (full settings, replaces existing groups on import) or OPML export\/import (works with any RSS reader, and import adds groups rather than replacing).<\/p><\/dd>\n<dt id=\"is%20the%20thumbnail%20caching%20feature%20safe%20to%20enable%3F\"><h3>Is the thumbnail caching feature safe to enable?<\/h3><\/dt>\n<dd><p>Yes \u2014 downloaded thumbnails are validated as real image data, capped in file size, and fetched with protection against requests to internal\/private network addresses.<\/p><\/dd>\n<dt id=\"where%20do%20i%20purge%20a%20stuck%20or%20stale%20cache%3F\"><h3>Where do I purge a stuck or stale cache?<\/h3><\/dt>\n<dd><p>From the Newsknit RSS settings screen (per group or all groups), or via the \"Purge All Caches\" link under the Newsknit RSS menu in the wp-admin toolbar.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Curate, filter, and display multiple RSS\/Atom feeds as organized, cached news feeds anywhere on your site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/340919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=340919"}],"author":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cspluginsuk"}],"wp:attachment":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=340919"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=340919"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=340919"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=340919"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=340919"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=340919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}