{"id":350968,"date":"2026-10-06T12:57:19","date_gmt":"2026-10-06T12:57:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/swiffle-grid\/"},"modified":"2026-10-06T12:57:01","modified_gmt":"2026-10-06T12:57:01","slug":"swiffle-grid-embed-data-anywhere","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/swiffle-grid-embed-data-anywhere\/","author":23541575,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3","stable_tag":"1.3","tested":"7.1.3","requires":"6.3","requires_php":"8.0","requires_plugins":null,"header_name":"Swiffle Grid","header_author":"CharmettesBros","header_description":"Any source. Any view. Anywhere. Swipe & flip grids from WordPress posts, CSV, XLSX and RSS\/YouTube feeds \u2014 in Gutenberg or Elementor.","assets_banners_color":"9ed9f2","last_updated":"2026-10-06 12:57:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/swiffle-grid.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":135,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3":{"tag":"1.3","author":"charmettesbros","date":"2026-10-06 12:57:01","revision":3730823}},"upgrade_notice":{"1.3":"<p>Minor internal improvements.<\/p>","1.2":"<p>Brings the plugin in line with current WordPress.org plugin directory guidelines.<\/p>","1.1.5":"<p>Initial version.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3730823,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3730823,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3730823,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3730823,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"swiffle\/swiffle-grid":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"swiffle\/swiffle-grid","version":"1.3","title":"Swiffle grid","category":"swiffle_category","description":"Any source. Any view. Anywhere. Swipe & flip grids powered by WordPress posts, CSV, XLSX, RSS and YouTube feeds, with OpenStreetMap maps.","example":{},"deprecated":[{"attributes":{"datak":{"type":"string","default":""}},"save":null}],"supports":{"html":false,"color":{"text":true,"background":true},"align":["center","left","right","wide","full"],"spacing":{"padding":true,"margin":["top","bottom"]}},"textdomain":"swiffle-grid-embed-data-anywhere","editorScript":"swiffle-editor","editorStyle":"file:.\/build\/swiffle\/index.css","attributes":{"blockid":{"type":"string","default":""},"proxy":{"type":"string","default":""},"cardID":{"type":"string","default":""},"postsCategory":{"type":"string","default":"*"},"postsUrl":{"type":"string","default":""},"postsSource":{"type":"string","default":"category"},"orderby":{"type":"string","default":"date,DESC"},"filtertitle":{"type":"string","default":""},"followpagefilter":{"type":"boolean","default":true},"followurlfilter":{"type":"boolean","default":true},"filterbtnshow":{"type":"boolean","default":true},"shownodataerr":{"type":"boolean","default":true},"cardgallery":{"type":"string","default":"slide"},"blockDefLayout":{"type":"string","default":"wrap"},"blockShowLayout":{"type":"string","default":"row"},"blockDefLayoutP":{"type":"string","default":"wrap"},"blockShowLayoutP":{"type":"string","default":"swipefull"},"blockCardsPerPg":{"type":"string","default":"20"},"blockCardsPerPgP":{"type":"string","default":"12"},"blockLang":{"type":"string","default":"wp"},"cardWidth":{"type":"string","default":"300px"},"cardWidthP":{"type":"string","default":"300px"},"cardWidthMax":{"type":"string","default":"90vw"},"cardWidthMaxP":{"type":"string","default":"90vw"},"cardHeight":{"type":"string","default":"400px"},"cardHeightP":{"type":"string","default":"400px"},"cardGap":{"type":"string","default":"10px"},"cardGapP":{"type":"string","default":"10px"},"cardAbstractShow":{"type":"boolean","default":true},"cardAbstractShowP":{"type":"boolean","default":true},"cardTitleOverPicture":{"type":"boolean","default":true},"cardTitleOverPictureP":{"type":"boolean","default":true},"cardClick":{"type":"string","default":"modal\/80"},"cardClickP":{"type":"string","default":"flip"},"cardimgsize":{"type":"string","default":"large"},"cardimgsizeP":{"type":"string","default":"large"},"cardRadiusPxl":{"type":"string","default":"5"},"cardRadiusPxlP":{"type":"string","default":"5"},"cardImgPct":{"type":"string","default":"30"},"cardImgPctP":{"type":"string","default":"30"},"cardImgRadiusPxl":{"type":"string","default":"0"},"cardImgRadiusPxlP":{"type":"string","default":"0"},"cardDirection":{"type":"string","default":"column"},"cardDirectionP":{"type":"string","default":"column"},"cardIconShow":{"type":"boolean","default":true},"cardIconShowP":{"type":"boolean","default":true},"cardimgadjustin":{"type":"string","default":"cover"},"cardimgadjustinP":{"type":"string","default":"cover"},"cardSingleStyle":{"type":"string","default":"swiffle"},"cardTitleFontSize":{"type":"string","default":"16px"},"cardTitleFontSizeP":{"type":"string","default":"16px"},"cardFlowTitleShow":{"type":"boolean","default":true},"cardFlowTitle":{"type":"string","default":""},"cardNavUrl":{"type":"string","default":"#"},"cardNavShow":{"type":"boolean","default":true},"cardContentOnly":{"type":"boolean","default":false},"blockShowComments":{"type":"boolean","default":true},"cardBgColor":{"type":"string","default":"#ffffff"},"cardFtColor":{"type":"string","default":"#111111"},"cardBgColorTitle":{"type":"string","default":"#47bcd4"},"cardFtColorTitle":{"type":"string","default":"#ffffff"},"cardBgColorButton":{"type":"string","default":"#9555af"},"cardFtColorButton":{"type":"string","default":"#ffffff"},"cardBgColorComments":{"type":"string","default":"#f3f3f3"},"componentPath":{"type":"string","default":".\/"}}}},"tagged_versions":["1.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3730823,"resolution":"1","location":"assets","locale":"","width":1622,"height":905},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3730823,"resolution":"2","location":"assets","locale":"","width":1622,"height":897},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3730823,"resolution":"3","location":"assets","locale":"","width":1557,"height":1032},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3730823,"resolution":"4","location":"assets","locale":"","width":1227,"height":917},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3730823,"resolution":"5","location":"assets","locale":"","width":1612,"height":932}},"screenshots":{"1":"Build in WordPress. Use Anywhere.","2":"RSS news in a Tinder-style swipe","3":"A page built using XLSX data","4":"A navigation menu and content page, generated from your own data","5":"One card, three superpowers: map, video, and photo gallery"}},"plugin_section":[],"plugin_tags":[14240,567,6590,850,284693],"plugin_category":[],"plugin_contributors":[284694],"plugin_business_model":[],"class_list":["post-350968","plugin","type-plugin","status-publish","hentry","plugin_tags-cards","plugin_tags-csv","plugin_tags-excel","plugin_tags-rss","plugin_tags-swipeable","plugin_contributors-charmettesbros","plugin_committers-charmettesbros"],"banners":{"banner":"https:\/\/ps.w.org\/swiffle-grid-embed-data-anywhere\/assets\/banner-772x250.png?rev=3730823","banner_2x":"https:\/\/ps.w.org\/swiffle-grid-embed-data-anywhere\/assets\/banner-1544x500.png?rev=3730823","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/swiffle-grid-embed-data-anywhere\/assets\/icon-128x128.gif?rev=3730823","icon_2x":"https:\/\/ps.w.org\/swiffle-grid-embed-data-anywhere\/assets\/icon-256x256.gif?rev=3730823","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/swiffle-grid-embed-data-anywhere\/assets\/screenshot-1.png?rev=3730823","caption":"Build in WordPress. Use Anywhere."},{"src":"https:\/\/ps.w.org\/swiffle-grid-embed-data-anywhere\/assets\/screenshot-2.png?rev=3730823","caption":"RSS news in a Tinder-style swipe"},{"src":"https:\/\/ps.w.org\/swiffle-grid-embed-data-anywhere\/assets\/screenshot-3.png?rev=3730823","caption":"A page built using XLSX data"},{"src":"https:\/\/ps.w.org\/swiffle-grid-embed-data-anywhere\/assets\/screenshot-4.png?rev=3730823","caption":"A navigation menu and content page, generated from your own data"},{"src":"https:\/\/ps.w.org\/swiffle-grid-embed-data-anywhere\/assets\/screenshot-5.png?rev=3730823","caption":"One card, three superpowers: map, video, and photo gallery"}],"raw_content":"<!--section=description-->\n<p><strong>Swiffle Grid lets you build dynamic data grids inside WordPress \u2014 using Gutenberg or Elementor \u2014 then embed them anywhere, including sites that don't run WordPress at all.<\/strong><\/p>\n\n<p>Available in 14 languages out of the box.<\/p>\n\n<p>Design cards and grids from your WordPress posts, a CSV or XLSX file, or an RSS feed (including a YouTube channel's video feed) \u2014 then publish with a lightweight HTML snippet that works on Shopify, Webflow, Wix, Squarespace, Ghost, static sites, mobile apps, or anywhere else HTML runs.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=xGqVRmEDlp0<\/p>\n\n<h3>What you can build<\/h3>\n\n<ul>\n<li>Content hubs and data\u2011driven landing pages<\/li>\n<li>Catalog\u2011style grids from a CSV or XLSX export<\/li>\n<li>Swipeable, flippable card galleries \u2014 including video galleries from a YouTube channel<\/li>\n<li>Headless or hybrid WordPress front\u2011ends<\/li>\n<li>Custom data explorers<\/li>\n<\/ul>\n\n<h3>\ud83e\udde9 Key Features<\/h3>\n\n<h4>\ud83d\udd39 Swipe &amp; flip cards<\/h4>\n\n<p>A Tinder\u2011style swipe layout, with tap\u2011to\u2011flip card reveal \u2014 a built\u2011in interaction mode, usable with any data source.<\/p>\n\n<h4>\ud83d\udd39 Build grids visually<\/h4>\n\n<p>Use Gutenberg or Elementor to design cards, grids, and layouts. No coding required.<\/p>\n\n<h4>\ud83d\udd39 Built\u2011in translations<\/h4>\n\n<p>The plugin interface and grid labels are available in 14 languages out of the box \u2014 no translation plugin required.<\/p>\n\n<h4>\ud83d\udd39 Connect your data<\/h4>\n\n<p>Fetch and display data from:\n- WordPress posts\n- CSV files\n- Excel (XLSX) files\n- RSS feeds (including a YouTube channel's video feed)<\/p>\n\n<h4>\ud83d\udd39 Update by filename, not by link<\/h4>\n\n<p>CSV and XLSX sources \u2014 and any images referenced inside them \u2014 are matched by file name in your Media Library, not by a fixed attachment link. Upload a new version with the same file name, and every grid using it updates automatically, including on external, non\u2011WordPress embeds. No re\u2011linking, no broken sources.<\/p>\n\n<h4>\ud83d\udd39 Embed anywhere<\/h4>\n\n<p>Publish your grid with a lightweight HTML snippet. Works on Shopify, Webflow, Wix, Squarespace, Ghost, static HTML, mobile apps, and any site that supports HTML.<\/p>\n\n<h4>\ud83d\udd39 No CORS headaches<\/h4>\n\n<p>The embed is built to avoid CORS issues out of the box, so a grid behaves the same on any non\u2011WordPress site it's embedded in \u2014 as long as that site doesn't itself block iframes (e.g. via a strict Content-Security-Policy).<\/p>\n\n<h3>Swiffle Grid PRO<\/h3>\n\n<p>A separate, paid companion plugin adds:\n- <strong>Live Google Sheets sync<\/strong> \u2014 connect a grid to a Google Sheet; edit a cell, the grid updates everywhere, including on non\u2011WordPress sites.\n- <strong>A full remote WooCommerce store, anywhere<\/strong> \u2014 browse, add to cart, save to a wishlist, and sign in from an external, non\u2011WordPress site. Checkout completes back on your WordPress store.\n- <strong>Custom connectors<\/strong> \u2014 fetch data from any external API using a developer\u2011defined PHP connector.\n- WooCommerce enhancements: color swatches, custom product options.<\/p>\n\n<p>Learn more: https:\/\/swiffle-grid.com\/<\/p>\n\n<h3>Links<\/h3>\n\n<ul>\n<li>Docs: https:\/\/swiffle-grid.com\/getting-started-with-swiffle-grid-free\/<\/li>\n<li>Teaser: https:\/\/swiffle-grid.com\/teaser\/<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to a small number of external services to provide some of its features. Each one is described below, including what is sent and when.<\/p>\n\n<p><strong>1. Remote RSS feeds you configure<\/strong>\nSwiffle Grid's core purpose is to display data from a source you choose \u2014 including, optionally, an RSS feed URL you enter yourself. When a block is set to fetch from an RSS URL, this plugin makes a server\u2011side HTTP request to that exact URL to retrieve its content. No data about your site or its visitors is sent beyond what is normally included in an HTTP request (like the User\u2011Agent). This only happens for the RSS URLs you explicitly configure \u2014 nothing is fetched by default. CSV and XLSX sources, by contrast, are always local files selected from your Media Library, never a remote URL.\nThis service is provided by whoever operates the feed URL you enter; consult that provider's own terms and privacy policy.<\/p>\n\n<p><strong>2. OpenStreetMap Nominatim (address geocoding, CSV\/XLSX only)<\/strong>\nIf a CSV or XLSX column meant to hold map coordinates contains free\u2011text instead (e.g. an address), this plugin's server sends that text to the Nominatim geocoding API (https:\/\/nominatim.openstreetmap.org) to resolve it into coordinates, and caches the result \u2014 using only the text already present in your own imported file. If that server\u2011side lookup did not already resolve an address, the visitor's own browser repeats the same Nominatim lookup when the map card is displayed, sending that address text (not otherwise identifying the visitor beyond what any HTTP request includes).\nNominatim Usage Policy: https:\/\/operations.osmfoundation.org\/policies\/nominatim\/\nOpenStreetMap Privacy Policy: https:\/\/osmfoundation.org\/wiki\/Privacy_Policy<\/p>\n\n<p><strong>3. OpenStreetMap map tiles and fallback map (map cards only)<\/strong>\nOnce a map card has resolved coordinates, the visitor's browser loads the map imagery directly from OpenStreetMap's tile servers (<code>*.tile.openstreetmap.org<\/code>) via the bundled Leaflet library. If tile loading fails, the card falls back to an embedded map from <code>umap.openstreetmap.fr<\/code> (OpenStreetMap France's uMap service) or, in some card layouts, from <code>www.openstreetmap.org\/export\/embed.html<\/code>. In every case only the coordinates\/address already in your data are sent \u2014 no other visitor data.\nOpenStreetMap Tile Usage Policy: https:\/\/operations.osmfoundation.org\/policies\/tiles\/\nOpenStreetMap Privacy Policy: https:\/\/osmfoundation.org\/wiki\/Privacy_Policy<\/p>\n\n<p><strong>4. Leaflet and Pico CSS (bundled, not remote)<\/strong>\nMap cards and custom filter forms use the Leaflet mapping library and Pico CSS, both of which are bundled directly with this plugin (not loaded from a CDN) \u2014 no external request is made to load the library files themselves (see services 2 and 3 above for the map data they then display).<\/p>\n\n<p><strong>5. YouTube, Vimeo, Dailymotion and SoundCloud<\/strong>\nIf a WordPress post displayed in a grid already contains a video\/audio embed you added yourself (via WordPress's native embed feature or Elementor), this plugin adjusts that existing embed so it keeps working when the card is shown on another site \u2014 the video\/audio then continues to load directly from its original provider, exactly as it would on your own site (for an Elementor YouTube widget with its \"Privacy Mode\" option enabled, the player loads from <code>youtube-nocookie.com<\/code>, YouTube's privacy-enhanced domain, instead of <code>youtube.com<\/code>). Separately, if a card's data source is a YouTube channel's own RSS feed (see service 1 above), the visitor's browser loads a <code>youtube.com\/embed\/&lt;video id&gt;<\/code> player directly from YouTube for each video in that feed.\nYouTube: https:\/\/www.youtube.com\/t\/terms \u2014 https:\/\/policies.google.com\/privacy\nVimeo: https:\/\/vimeo.com\/terms \u2014 https:\/\/vimeo.com\/privacy\nDailymotion: https:\/\/www.dailymotion.com\/legal\/terms \u2014 https:\/\/www.dailymotion.com\/legal\/privacy\nSoundCloud: https:\/\/soundcloud.com\/terms-of-use \u2014 https:\/\/soundcloud.com\/pages\/privacy<\/p>\n\n<p><strong>6. Gravatar (commenter avatars, WordPress source only)<\/strong>\nWhen a grid card displays WordPress comments, each commenter's avatar is loaded from Gravatar (<code>secure.gravatar.com<\/code>) using WordPress core's own <code>get_avatar()<\/code>, the same as anywhere else on a WordPress site \u2014 including on an external, non\u2011WordPress page the card is embedded on. This is governed by your site's own Discussion Settings, not a setting of this plugin.\nAutomattic Privacy Policy: https:\/\/automattic.com\/privacy\/\nWordPress.com Terms of Service: https:\/\/wordpress.com\/tos\/<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>This plugin ships two built\/minified JavaScript files: <code>js\/swifflegrid.js<\/code> (the <code>&lt;swiffle-grid&gt;<\/code> web component, used on the front end and in the block\/widget editors) and <code>build\/swiffle\/index.js<\/code> (the Gutenberg block's editor script).<\/p>\n\n<p>The human-readable, non-minified source for both is included with this plugin under <code>published-source\/<\/code> (see <code>published-source\/README.txt<\/code> for the exact mapping and the build tools used to produce each file \u2014 Parcel for the Gutenberg block, Webpack + Babel for the web component). Nothing needs to be downloaded separately: install this plugin and the source is already there, ready to be read, studied, or forked.<\/p>\n\n<p>This plugin also bundles two third-party libraries, each minified, under their own open-source license:<\/p>\n\n<ul>\n<li><strong>Leaflet<\/strong> 1.9.4 (BSD-2-Clause) \u2014 <code>js\/vendor\/leaflet\/leaflet.js<\/code>, <code>css\/vendor\/leaflet.css<\/code>. Unminified source: https:\/\/github.com\/Leaflet\/Leaflet<\/li>\n<li><strong>Pico CSS<\/strong> 2.1.1 (MIT) \u2014 <code>css\/vendor\/pico.min.css<\/code>. Unminified source: https:\/\/github.com\/picocss\/pico<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from the WordPress plugin directory or upload it manually.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Add the Swiffle Grid block in the Gutenberg editor, or the Swiffle Grid widget in Elementor.<\/li>\n<li>Choose your data source.<\/li>\n<li>Design your cards and layout.<\/li>\n<li>Publish your grid and copy the embed snippet.<\/li>\n<li>Paste the snippet into any external website or app.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20use%20swiffle%20grid%20outside%20wordpress%3F\"><h3>Can I use Swiffle Grid outside WordPress?<\/h3><\/dt>\n<dd><p>Yes. Every grid can be embedded anywhere using a simple HTML snippet.<\/p><\/dd>\n<dt id=\"what%20data%20sources%20are%20supported%3F\"><h3>What data sources are supported?<\/h3><\/dt>\n<dd><p>WordPress posts, CSV files, XLSX files, and RSS feeds (including a YouTube channel's video feed) are supported out of the box. Live Google Sheets sync, WooCommerce, and custom API connectors are available through Swiffle Grid PRO, a separate companion plugin.<\/p><\/dd>\n<dt id=\"will%20the%20embed%20run%20into%20cors%20or%20network%E2%80%91blocking%20issues%20on%20another%20platform%3F\"><h3>Will the embed run into CORS or network\u2011blocking issues on another platform?<\/h3><\/dt>\n<dd><p>The embed snippet is built to avoid CORS issues out of the box, so your grid behaves consistently across the platforms we've tested it on \u2014 the one exception is a site that blocks iframes itself (for example via a strict Content-Security-Policy), which no embed technology can work around.<\/p><\/dd>\n<dt id=\"does%20the%20embed%20work%20on%20shopify%2C%20webflow%2C%20wix%2C%20or%20static%20sites%3F\"><h3>Does the embed work on Shopify, Webflow, Wix, or static sites?<\/h3><\/dt>\n<dd><p>Yes. As long as the platform supports HTML and JavaScript, the embed works.<\/p><\/dd>\n<dt id=\"does%20swiffle%20grid%20work%20with%20elementor%2C%20or%20only%20gutenberg%3F\"><h3>Does Swiffle Grid work with Elementor, or only Gutenberg?<\/h3><\/dt>\n<dd><p>Both. Grids can be designed and embedded using either Gutenberg or Elementor \u2014 neither is required over the other. If you use Elementor, version 3.5 or higher is required for the Swiffle widget to appear.<\/p><\/dd>\n<dt id=\"does%20it%20support%20woocommerce%3F\"><h3>Does it support WooCommerce?<\/h3><\/dt>\n<dd><p>Not in this free plugin. Displaying WooCommerce products, and remote cart\/wishlist\/sign\u2011in features, are provided by Swiffle Grid PRO, a separate companion plugin.<\/p><\/dd>\n<dt id=\"can%20i%20display%20youtube%20videos%20in%20a%20grid%3F\"><h3>Can I display YouTube videos in a grid?<\/h3><\/dt>\n<dd><p>Yes. Connect your YouTube channel's RSS feed as a source, then set the card action to flip \u2014 the back of each card plays the video. There's no dedicated YouTube connector; it works through the existing RSS source, combined with the swipe and flip layout options.<\/p><\/dd>\n<dt id=\"if%20i%20upload%20a%20new%20version%20of%20my%20csv%20or%20xlsx%20file%2C%20do%20my%20grids%20update%20automatically%3F\"><h3>If I upload a new version of my CSV or XLSX file, do my grids update automatically?<\/h3><\/dt>\n<dd><p>Yes, as long as the new file has the same file name. Swiffle Grid matches CSV\/XLSX sources by file name in your Media Library and always uses the most recent match \u2014 no need to re\u2011select the source or update any embed.<\/p><\/dd>\n<dt id=\"is%20the%20embed%20secure%3F\"><h3>Is the embed secure?<\/h3><\/dt>\n<dd><p>Remote embeds only work for the URLs you explicitly authorize on the Swiffle Grid settings page, with per-source permissions you control.<\/p><\/dd>\n<dt id=\"can%20very%20long%20browsing%20sessions%20cause%20the%20page%20to%20reload%20on%20iphone%3F\"><h3>Can very long browsing sessions cause the page to reload on iPhone?<\/h3><\/dt>\n<dd><p>On Safari for iOS specifically, extremely long, continuous scrolling sessions through very large grids can occasionally cause iOS to reload the page, due to Apple's own memory management on that browser. This is a known iOS Safari behavior, not specific to Swiffle Grid, and no data is lost when it happens \u2014 the grid simply reloads. This is rare in normal browsing and has not been observed on Chrome or Firefox for iOS, or on Android.<\/p><\/dd>\n<dt id=\"can%20i%20connect%20external%20apis%3F\"><h3>Can I connect external APIs?<\/h3><\/dt>\n<dd><p>Not in this free plugin. Developers can build custom PHP connectors to fetch data from any API through Swiffle Grid PRO.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The embed is designed to work well with caching and CDN layers.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20headless%20wordpress%3F\"><h3>Does it work with headless WordPress?<\/h3><\/dt>\n<dd><p>Yes. Swiffle Grid is ideal for headless or hybrid architectures.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3<\/h4>\n\n<ul>\n<li>Minor internal improvements.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>WordPress compliance pass.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Initial version.<\/li>\n<\/ul>","raw_excerpt":"Any source. Any view. Anywhere. Swipe &amp; flip grids from WordPress posts, CSV, XLSX and RSS\/YouTube feeds \u2014 in Gutenberg or Elementor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350968","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=350968"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/charmettesbros"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350968"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350968"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350968"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350968"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350968"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}