{"id":399202,"date":"2026-11-06T08:08:02","date_gmt":"2026-11-06T08:08:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dynamirss\/"},"modified":"2026-11-06T08:07:51","modified_gmt":"2026-11-06T08:07:51","slug":"dynamirss","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/dynamirss\/","author":16057659,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"DynamiRSS","header_author":"Shabti Kaplan","header_description":"Gutenberg blocks that pull live articles from a dynamiRSS API instance and render them with fully composable, InnerBlocks-based article cards. Includes live source\/category filtering on the frontend.","assets_banners_color":"4d7fe0","last_updated":"2026-11-06 08:07:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/dynamiapps.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":123,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"shabti","date":"2026-11-06 08:07:51","revision":3787427}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3787436,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3787436,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3787436,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"dynamirss\/query":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dynamirss\/query","title":"DynamiRSS Query","category":"dynamirss","icon":"rss","description":"Fetches articles from a dynamiRSS API instance and displays them with a customizable article template. Add source\/category filters and design the card layout with the blocks inside.","keywords":["news","rss","feed","dynamirss"],"textdomain":"dynamirss","attributes":{"searchTerms":{"type":"string","default":""},"category":{"type":"string","default":""},"categories":{"type":"array","items":{"type":"string"},"default":[]},"sources":{"type":"array","items":{"type":"string"},"default":[]},"excludeSources":{"type":"array","items":{"type":"string"},"default":[]},"language":{"type":"string","default":""},"datePreset":{"type":"string","enum":["","today","week","month"],"default":""},"date":{"type":"string","default":""},"dateFrom":{"type":"string","default":""},"dateTo":{"type":"string","default":""},"matchAllWords":{"type":"boolean","default":false},"headlinesOnly":{"type":"boolean","default":false},"excludeTerms":{"type":"string","default":""},"onlyWithImages":{"type":"boolean","default":false},"sort":{"type":"string","enum":["balanced","newest"],"default":"balanced"},"limit":{"type":"number","default":12},"columns":{"type":"number","default":3},"fetchExtras":{"type":"boolean","default":true},"showSourceFilter":{"type":"boolean","default":true},"showCategoryFilter":{"type":"boolean","default":true},"showLanguageFilter":{"type":"boolean","default":false},"showDateFilter":{"type":"boolean","default":false},"showSortFilter":{"type":"boolean","default":false},"showLoadMore":{"type":"boolean","default":true}},"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true,"blockGap":false},"color":{"background":true,"text":true,"link":true}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"dynamirss\/article-template":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dynamirss\/article-template","title":"Article Template","category":"dynamirss","icon":"layout","description":"The layout that repeats once per fetched article. Drag field blocks in and style them \u2014 this design is reused for every article on the frontend.","textdomain":"dynamirss","parent":["dynamirss\/query"],"supports":{"html":false,"spacing":{"margin":true,"padding":true}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"dynamirss\/article-excerpt":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dynamirss\/article-excerpt","title":"Article Excerpt","category":"dynamirss","icon":"editor-alignleft","description":"The article's summary or body text, trimmed to a max length. Only valid inside an Article Template.","textdomain":"dynamirss","parent":["dynamirss\/article-template"],"usesContext":["dynamirss\/article"],"attributes":{"source":{"type":"string","default":"summary"},"maxLength":{"type":"number","default":160}},"supports":{"html":false,"spacing":{"margin":true},"typography":{"fontSize":true,"lineHeight":true},"color":{"text":true,"background":false}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"dynamirss\/article-image":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dynamirss\/article-image","title":"Article Image","category":"dynamirss","icon":"format-image","description":"The article's image, from the dynamiRSS API. Only valid inside an Article Template.","textdomain":"dynamirss","parent":["dynamirss\/article-template"],"usesContext":["dynamirss\/article"],"attributes":{"aspectRatio":{"type":"string","default":"16\/9"}},"supports":{"html":false,"spacing":{"margin":true},"border":{"radius":true,"color":false,"width":false}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"dynamirss\/article-date":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dynamirss\/article-date","title":"Article Date","category":"dynamirss","icon":"calendar-alt","description":"The article's published date. Only valid inside an Article Template.","textdomain":"dynamirss","parent":["dynamirss\/article-template"],"usesContext":["dynamirss\/article"],"attributes":{"format":{"type":"string","default":"F j, Y"}},"supports":{"html":false,"spacing":{"margin":true},"typography":{"fontSize":true},"color":{"text":true,"background":false}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"dynamirss\/article-source":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dynamirss\/article-source","title":"Article Source","category":"dynamirss","icon":"admin-site-alt3","description":"The name of the site the article came from. Only valid inside an Article Template.","textdomain":"dynamirss","parent":["dynamirss\/article-template"],"usesContext":["dynamirss\/article"],"attributes":{"prefix":{"type":"string","default":""}},"supports":{"html":false,"spacing":{"margin":true},"typography":{"fontSize":true},"color":{"text":true,"background":false}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"dynamirss\/article-read-more":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dynamirss\/article-read-more","title":"Article Read More Link","category":"dynamirss","icon":"arrow-right-alt","description":"A link\/button to the original article. Only valid inside an Article Template.","textdomain":"dynamirss","parent":["dynamirss\/article-template"],"usesContext":["dynamirss\/article"],"attributes":{"label":{"type":"string","default":"Read more"},"openInNewTab":{"type":"boolean","default":true}},"supports":{"html":false,"spacing":{"margin":true,"padding":true},"typography":{"fontSize":true},"color":{"text":true,"background":true},"border":{"radius":true,"width":true,"color":true}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"dynamirss\/article-categories":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dynamirss\/article-categories","title":"Article Categories","category":"dynamirss","icon":"tag","description":"Pills for the article source's tagged categories. Only valid inside an Article Template.","textdomain":"dynamirss","parent":["dynamirss\/article-template"],"usesContext":["dynamirss\/article"],"attributes":{"limit":{"type":"number","default":3}},"supports":{"html":false,"spacing":{"margin":true},"typography":{"fontSize":true},"color":{"text":true,"background":true}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"},"dynamirss\/article-title":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"dynamirss\/article-title","title":"Article Title","category":"dynamirss","icon":"heading","description":"The article's headline, linked to the source article. Only valid inside an Article Template.","textdomain":"dynamirss","parent":["dynamirss\/article-template"],"usesContext":["dynamirss\/article"],"attributes":{"level":{"type":"number","default":3},"isLink":{"type":"boolean","default":true},"openInNewTab":{"type":"boolean","default":true}},"supports":{"html":false,"spacing":{"margin":true},"typography":{"fontSize":true,"lineHeight":true,"__experimentalFontWeight":true},"color":{"text":true,"link":true,"background":false}},"editorScript":"file:.\/index.js","render":"file:.\/render.php"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[5636,1220,252,1248,850],"plugin_category":[],"plugin_contributors":[176383],"plugin_business_model":[],"class_list":["post-399202","plugin","type-plugin","status-publish","hentry","plugin_tags-aggregator","plugin_tags-block","plugin_tags-feed","plugin_tags-news","plugin_tags-rss","plugin_contributors-shabti","plugin_committers-shabti"],"banners":{"banner":"https:\/\/ps.w.org\/dynamirss\/assets\/banner-772x250.png?rev=3787436","banner_2x":"https:\/\/ps.w.org\/dynamirss\/assets\/banner-1544x500.png?rev=3787436","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dynamirss\/assets\/icon-128x128.png?rev=3787436","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>DynamiRSS adds a \"DynamiRSS Query\" block. Drop it on a page, set a search\nterm and\/or category, then design the per-article card by dragging in the\nincluded field blocks (Image, Title, Excerpt, Source, Date, Categories, Read\nMore Link) inside the Article Template \u2014 every block supports WordPress's\nstandard color\/typography\/spacing controls, so the look is entirely yours.<\/p>\n\n<p>The block can also be limited to (or told to leave out) specific channels,\nto one language, to today \/ this week \/ this month or a fixed day or date\nrange, to several categories at once, to articles that have an image, and\nto articles that match every search word, match in the headline only, or\ndon't mention certain words. Results come either as a mix of sources or\nstrictly newest first.<\/p>\n\n<p>Visitors can filter the results by source and category without a page\nreload, and optionally by language, date and sort order; \"Load more\"\npaginates the same way.<\/p>\n\n<h4>Plans<\/h4>\n\n<p>The plugin is free. It needs a dynamiRSS account, which has a free plan\n(https:\/\/rss.dynamiapps.com\/pricing):<\/p>\n\n<ul>\n<li>Free \u2014 $0: 500 requests a month, up to 20 articles per request.<\/li>\n<li>Pro \u2014 $29\/month or $299\/year: 10,000 requests a month, up to 100\narticles per request, live image and full-text enrichment.<\/li>\n<li>Business \u2014 $99\/month or $999\/year: 100,000 requests a month, up to 200\narticles per request, live image and full-text enrichment.<\/li>\n<\/ul>\n\n<p>If a block asks for more articles per page than your plan allows, you get\nyour plan's maximum per page and \"Load more\" carries on from there.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin gets its articles from the dynamiRSS news API\n(https:\/\/api.rss.dynamiapps.com). It can't show any\narticles without it, and it needs an API key from https:\/\/rss.dynamiapps.com.<\/p>\n\n<p>All requests are made by your WordPress server, never by your visitors'\nbrowsers, so visitors' IP addresses and browser details are not sent.<\/p>\n\n<ul>\n<li>When a page with a DynamiRSS Query block is viewed, or a visitor uses its\nfilters or \"Load more\" button, the server sends the block's search\nsettings to POST \/scan: search words, categories, channels, language,\ndates, sort order and similar filters, the number of articles wanted, and\nthe site's API key. Results are cached on your site for the time set\nunder \"Cache TTL\" (two minutes by default).<\/li>\n<li>When the block editor or the block's category\/language filters need\nthem, the server fetches the list of categories (GET \/categories, no API\nkey sent) and channels (GET \/channels, with the API key). Both lists are\ncached for an hour.<\/li>\n<\/ul>\n\n<p>dynamiRSS terms of service: https:\/\/rss.dynamiapps.com\/terms\ndynamiRSS privacy policy: https:\/\/rss.dynamiapps.com\/privacy<\/p>\n\n<h3>Development<\/h3>\n\n<p>The block editor code is in <code>src\/<\/code> and is compiled into <code>build\/<\/code>, which is\nwhat the plugin registers blocks from. Run <code>npm install &amp;&amp; npm run build<\/code>\nto rebuild, or <code>npm start<\/code> for a watch build while developing.\n    npm run zip builds and writes the release zip next to the plugin folder.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to the \"DynamiRSS\" item in the admin menu and enter your dynamiRSS\nAPI key. The category, channel and language lists are fetched from the\nAPI automatically \u2014 nothing else to configure.<\/li>\n<li>Add the \"DynamiRSS Query\" block to a page or post, set a search term,\ncategory, channel, language or date, and design the article card.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20does%20the%20block%20show%20nothing%3F\"><h3>Why does the block show nothing?<\/h3><\/dt>\n<dd><p>A block needs at least one of: a search term, a category, a channel, a\nlanguage or a date. Exclusions, \"only with images\" and sorting only narrow\na search down. Also check that an API key is set under DynamiRSS in the\nadmin menu; site administrators see the API's error message in place of\nthe block if a request fails.<\/p><\/dd>\n<dt id=\"how%20many%20requests%20will%20my%20site%20use%3F\"><h3>How many requests will my site use?<\/h3><\/dt>\n<dd><p>One request each time a block's results aren't already cached: when a page\nwith the block is viewed after its cache has expired, and each time a\nvisitor changes a filter or clicks \"Load more\". Results are cached for the\n\"Cache TTL\" set under DynamiRSS in the admin menu, so a block's default\nview costs at most one request per TTL however busy the page is. At the\ndefault of 120 seconds that is up to about 21,600 requests a month for a\nblock on a page that is never idle. On the Free plan, set the TTL to at\nleast 10800 (three hours, about 240 requests a month per block) and leave\nthe visitor filters off, since every new filter combination is a request.<\/p><\/dd>\n<dt id=\"how%20far%20back%20do%20articles%20go%3F\"><h3>How far back do articles go?<\/h3><\/dt>\n<dd><p>The API keeps articles for about 30 days. \"Today\", \"This week\" and \"This\nmonth\" move with the calendar (in UTC); a fixed day or date range will\neventually stop matching anything.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Live news from the dynamiRSS API in a block, with a card layout you design and filters your visitors can use.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/399202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=399202"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shabti"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=399202"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=399202"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=399202"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=399202"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=399202"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=399202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}