{"id":326674,"date":"2026-06-20T19:20:48","date_gmt":"2026-06-20T19:20:48","guid":{"rendered":"https:\/\/en-ca.wordpress.org\/plugins\/comma-sense-sync-csv-to-table\/"},"modified":"2026-06-20T19:20:31","modified_gmt":"2026-06-20T19:20:31","slug":"comma-sense","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/comma-sense\/","author":3657560,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Comma Sense \u2014 Sync CSV to Table","header_author":"Troy Chaplin","header_description":"A variation of the core table block that syncs data from CSV files.","assets_banners_color":"0f2238","last_updated":"2026-06-20 19:20:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"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":"areziaal","date":"2026-06-20 19:20:31"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3580104,"resolution":"128x128","location":"assets","locale":"","width":512,"height":512}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3580104,"resolution":"772x250","location":"assets","locale":"","width":1778,"height":576}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3580104,"resolution":"1","location":"assets","locale":"","width":2128,"height":1452},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3580104,"resolution":"2","location":"assets","locale":"","width":2686,"height":1446},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3580104,"resolution":"3","location":"assets","locale":"","width":2686,"height":1452}},"screenshots":{"1":"Link a CSV from the Media Library and your table rezzes into place \u2014 headers and all.","2":"Every core Table design control still applies, so your data looks like the rest of your cabinet.","3":"Configurable, accessible pagination keeps large datasets fast and readable."}},"plugin_section":[],"plugin_tags":[1220,567,3524,9471,2289],"plugin_category":[],"plugin_contributors":[231290],"plugin_business_model":[],"class_list":["post-326674","plugin","type-plugin","status-publish","hentry","plugin_tags-block","plugin_tags-csv","plugin_tags-data","plugin_tags-spreadsheet","plugin_tags-table","plugin_contributors-areziaal","plugin_committers-areziaal"],"banners":{"banner":"https:\/\/ps.w.org\/comma-sense\/assets\/banner-772x250.png?rev=3580104","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/comma-sense\/assets\/icon-128x128.png?rev=3580104","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/comma-sense\/assets\/screenshot-1.png?rev=3580104","caption":"Link a CSV from the Media Library and your table rezzes into place \u2014 headers and all."},{"src":"https:\/\/ps.w.org\/comma-sense\/assets\/screenshot-2.png?rev=3580104","caption":"Every core Table design control still applies, so your data looks like the rest of your cabinet."},{"src":"https:\/\/ps.w.org\/comma-sense\/assets\/screenshot-3.png?rev=3580104","caption":"Configurable, accessible pagination keeps large datasets fast and readable."}],"raw_content":"<!--section=description-->\n<p><strong>INSERT CSV. PRESS START.<\/strong><\/p>\n\n<p>Hand-building tables cell by cell is the final boss nobody asked for. Comma Sense plugs a CSV from your Media Library straight into a core WordPress Table block and \u2014 <em>FWOOSH<\/em> \u2014 your spreadsheet rezzes onto the page in full neon. Update the file, smash <strong>Refresh<\/strong>, and your live page levels up with it. No quarters required.<\/p>\n\n<blockquote>\n  <p><em>\"It just makes sense, dude.\"<\/em><\/p>\n<\/blockquote>\n\n<p>Pricing sheets. Sports stats. Product specs. Event schedules. That 800-row dataset lurking at the end of the level. Comma Sense turns <em>\"ugh, the table\"<\/em> into <em>\"NEW HIGH SCORE.\"<\/em> No copy-paste marathons, no fragile manual edits, no re-saving posts every time your numbers tick up.<\/p>\n\n<h4>Power-Ups<\/h4>\n\n<ul>\n<li><strong>PLAYER 1, READY.<\/strong> Pick a CSV and the first row becomes your headers while the rest fills the body \u2014 automatically.<\/li>\n<li><strong>One file, always in sync.<\/strong> The table renders live from the linked CSV on every page load, so the front end always shows the latest data. Change the file, you're done.<\/li>\n<li><strong>Zero lock-in, zero quarters.<\/strong> It's not a weird custom block \u2014 it's a variation of the core Table block. Everything you already know still works, and your content stays portable.<\/li>\n<li><strong>It looks like <em>your<\/em> cabinet.<\/strong> Color, borders, typography, spacing, alignment, fixed layout, theme styles \u2014 every core Table control applies, untouched.<\/li>\n<li><strong>No lag.<\/strong> Output renders dynamically with smart server-side caching, so big tables never drop a frame.<\/li>\n<\/ul>\n\n<h4>Built on Core, Not Bolted On<\/h4>\n\n<p>Comma Sense is a block variation of <code>core\/table<\/code> \u2014 full compatibility with everything you rely on, and it inherits future WordPress upgrades for free. Because the data is a plain CSV grid, per-cell tricks with no CSV equivalent (cell alignment, colspan\/rowspan) are intentionally skipped, while every block-level design control works exactly as you'd expect.<\/p>\n\n<h4>No Friendly Fire (Read-Only While Synced)<\/h4>\n\n<p>While a CSV is linked, the table is read-only in the editor \u2014 the file is the single source of truth, so a stray keystroke can't knock your data out of sync. Want to go off-script and edit by hand? One hit of <strong>Detach<\/strong> drops it back to a standard, fully editable Table block with your data intact.<\/p>\n\n<h4>Pagination That Never Drops a Frame<\/h4>\n\n<p>Big dataset? Comma Sense paginates automatically to keep pages fast and readable, with a configurable rows-per-page. Powered by the modern WordPress Interactivity API, it degrades like a champ: with JavaScript disabled, every row shows and the controls hide \u2014 so no data is ever trapped behind a dead button.<\/p>\n\n<h4>Accessible From the First Row<\/h4>\n\n<p>CSV headers render as proper <code>&lt;th&gt;<\/code> elements with <code>scope=\"col\"<\/code>, pagination ships with correct ARIA and keyboard support, and the editor nudges you when a table is missing headers. Good data tables, by default.<\/p>\n\n<h4>1-UP For<\/h4>\n\n<ul>\n<li>Pricing and comparison tables<\/li>\n<li>Product catalogs and spec sheets<\/li>\n<li>Sports standings, schedules, and stats<\/li>\n<li>Financial reports and data dumps<\/li>\n<li>Anyone who lives in a spreadsheet and wishes WordPress did too<\/li>\n<\/ul>\n\n<!--section=installation-->\n<p>Loading screen, then you're in:<\/p>\n\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/comma-sense<\/code> directory, or install the plugin through the WordPress Plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Add a Table block, or search \"CSV\" in the block inserter for the <strong>Comma Sense<\/strong> variation.<\/li>\n<li>Choose <strong>Select CSV file<\/strong>, pick a file from the Media Library, and watch your table rez into place.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20connect%20a%20csv%20to%20my%20table%3F\"><h3>How do I connect a CSV to my table?<\/h3><\/dt>\n<dd><p>Insert a Table block (or search \"CSV\" in the inserter for the Comma Sense variation), then choose <strong>Select CSV file<\/strong> from the block's upload placeholder or the <strong>CSV Data Source<\/strong> panel in the sidebar. Pick a file from your Media Library and the table fills itself in instantly \u2014 no continue screen required.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20my%20data%20changes%3F\"><h3>What happens when my data changes?<\/h3><\/dt>\n<dd><p>Upload a new version of the file (or hit <strong>Replace<\/strong>) and the front end reflects it on the next page load \u2014 no need to re-save the post. In the editor, smash <strong>Refresh<\/strong> to update the preview. Your spreadsheet stays the single source of truth.<\/p><\/dd>\n<dt id=\"can%20i%20still%20edit%20the%20table%20by%20hand%3F\"><h3>Can I still edit the table by hand?<\/h3><\/dt>\n<dd><p>Yes. While a CSV is linked the table is read-only to keep your data safe, but <strong>Detach<\/strong> converts the block back into a standard, fully editable Table block \u2014 every imported row intact.<\/p><\/dd>\n<dt id=\"do%20my%20colors%2C%20borders%2C%20and%20theme%20styles%20still%20work%3F\"><h3>Do my colors, borders, and theme styles still work?<\/h3><\/dt>\n<dd><p>Absolutely. Comma Sense is a variation of the core Table block, so every block-level design control \u2014 color, border, typography, spacing, alignment, fixed layout \u2014 and all your theme's table styling apply exactly as normal.<\/p><\/dd>\n<dt id=\"will%20big%20tables%20slow%20down%20my%20site%3F\"><h3>Will big tables slow down my site?<\/h3><\/dt>\n<dd><p>No lag here. Tables render dynamically with server-side transient caching, and large datasets paginate automatically (configurable rows per page, capped for performance). Switch pagination off on a huge table and it quietly re-enables itself.<\/p><\/dd>\n<dt id=\"does%20pagination%20work%20without%20javascript%3F\"><h3>Does pagination work without JavaScript?<\/h3><\/dt>\n<dd><p>It degrades like a champ. Pagination is built on the WordPress Interactivity API; with JavaScript disabled, every row is displayed and the pagination controls are hidden, so all of your data stays accessible.<\/p><\/dd>\n<dt id=\"is%20it%20accessible%3F\"><h3>Is it accessible?<\/h3><\/dt>\n<dd><p>Yes. CSV headers become real <code>&lt;th scope=\"col\"&gt;<\/code> cells, the pagination controls include proper ARIA states and keyboard support, and the editor flags tables that are missing headers so your data tables stay screen-reader friendly.<\/p><\/dd>\n<dt id=\"what%20kind%20of%20csv%20files%20are%20supported%3F\"><h3>What kind of CSV files are supported?<\/h3><\/dt>\n<dd><p>Standard comma-separated files from the Media Library, including those with a UTF-8 byte-order mark and quoted fields. Comma Sense is forgiving about the various MIME types real-world CSV exports use, so files from Excel, Google Sheets, and friends just drop right in.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>PRESS START \u2014 initial release: CSV-to-Table syncing via a core Table block variation.<\/li>\n<\/ul>","raw_excerpt":"Beam a CSV into a core Table block and watch it light up \u2014 upload, refresh, HIGH SCORE. Your spreadsheet data, neon-bright on the page.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326674","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=326674"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/areziaal"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326674"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326674"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326674"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326674"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326674"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}