{"id":297501,"date":"2026-04-20T10:27:08","date_gmt":"2026-04-20T10:27:08","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/tablecraft\/"},"modified":"2026-04-28T11:42:47","modified_gmt":"2026-04-28T11:42:47","slug":"recast-table-builder-for-acf-scf","status":"publish","type":"plugin","link":"https:\/\/test.wordpress.org\/plugins\/recast-table-builder-for-acf-scf\/","author":23476181,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.12","stable_tag":"1.1.12","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Recast Table Builder for Advanced Custom Fields and Secure Custom Fields","header_author":"Recast Digital","header_description":"Adds a customizable table field type for Advanced Custom Fields and Secure Custom Fields with dynamic rows and columns.","assets_banners_color":"f6fafe","last_updated":"2026-04-28 11:42:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/recastdigital.com","rating":5,"author_block_rating":0,"active_installs":20,"downloads":301,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.12":{"tag":"1.1.12","author":"recastdigital","date":"2026-04-28 11:42:47"}},"upgrade_notice":{"1.1.8":"<p>Fixes WYSIWYG save reliability for formatted content and improves admin asset cache busting during editing.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3510723,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3510723,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3517280,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3517280,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.12"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3517280,"resolution":"1","location":"assets","locale":"","width":2032,"height":453},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3510743,"resolution":"2","location":"assets","locale":"","width":1143,"height":537}},"screenshots":{"1":"Editing headers, rows, and cell values in the ACF\/SCF table field UI.","2":"Adding the <code>Table<\/code> field type to an Advanced Custom Fields or Secure Custom Fields field group."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2211,2237,52829,234877,2289],"plugin_category":[59],"plugin_contributors":[260618],"plugin_business_model":[],"class_list":["post-297501","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-advanced-custom-field","plugin_tags-scf","plugin_tags-secure-custom-fields","plugin_tags-table","plugin_category-utilities-and-tools","plugin_contributors-recastdigital","plugin_committers-recastdigital"],"banners":{"banner":"https:\/\/ps.w.org\/recast-table-builder-for-acf-scf\/assets\/banner-772x250.png?rev=3517280","banner_2x":"https:\/\/ps.w.org\/recast-table-builder-for-acf-scf\/assets\/banner-1544x500.png?rev=3517280","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/recast-table-builder-for-acf-scf\/assets\/icon-128x128.png?rev=3510723","icon_2x":"https:\/\/ps.w.org\/recast-table-builder-for-acf-scf\/assets\/icon-256x256.png?rev=3510723","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/recast-table-builder-for-acf-scf\/assets\/screenshot-1.png?rev=3517280","caption":"Editing headers, rows, and cell values in the ACF\/SCF table field UI."},{"src":"https:\/\/ps.w.org\/recast-table-builder-for-acf-scf\/assets\/screenshot-2.png?rev=3510743","caption":"Adding the <code>Table<\/code> field type to an Advanced Custom Fields or Secure Custom Fields field group."}],"raw_content":"<!--section=description-->\n<p>Recast Table Builder for Advanced Custom Fields and Secure Custom Fields adds a dedicated <code>Table<\/code> field type for <code>Advanced Custom Fields (ACF)<\/code> and <code>Secure Custom Fields (SCF)<\/code>.<\/p>\n\n<p>Use it to build structured, editable custom data tables directly in the WordPress admin.<\/p>\n\n<p>Features include:<\/p>\n\n<ul>\n<li>Add and remove table rows and columns.<\/li>\n<li>Use text cells in the field UI.<\/li>\n<li>Store the full table structure in one ACF\/SCF field value.<\/li>\n<li>Works with existing ACF and SCF field group workflows.<\/li>\n<\/ul>\n\n<p>This plugin requires Advanced Custom Fields or Secure Custom Fields to be installed and active.<\/p>\n\n<h3>Usage<\/h3>\n\n<ol>\n<li>Create or edit an <code>ACF<\/code> or <code>SCF<\/code> field group.<\/li>\n<li>Add a new field and choose the <code>Table<\/code> field type.<\/li>\n<li>Assign the field group to the post type, page, options page, or block where you want to use it.<\/li>\n<li>Edit your content and add table headers, rows, and cell values in the <code>Recast Table Builder for Advanced Custom Fields and Secure Custom Fields<\/code> UI.<\/li>\n<li>Save or update the post.<\/li>\n<\/ol>\n\n<p>To render the saved table on the front end, fetch the field value with <code>get_field()<\/code> and pass it to <code>recast_stf_render()<\/code>:<\/p>\n\n<pre><code>$table = get_field( 'my_table' );\n\nif ( $table ) { echo recast_stf_render( $table ); }&lt;h3&gt;Styling&lt;\/h3&gt;\n<\/code><\/pre>\n\n<p>Recast Table Builder for Advanced Custom Fields and Secure Custom Fields` outputs a small set of default classes:<\/p>\n\n<ul>\n<li><code>.recast-table-builder-for-acf-scf-front<\/code><\/li>\n<li><code>.recast-table-builder-for-acf-scf-front__table<\/code><\/li>\n<li><code>.recast-table-builder-for-acf-scf-front__head<\/code><\/li>\n<li><code>.recast-table-builder-for-acf-scf-front__body<\/code><\/li>\n<li><code>.recast-table-builder-for-acf-scf-front__row<\/code><\/li>\n<li><code>.recast-table-builder-for-acf-scf-front__heading<\/code><\/li>\n<li><code>.recast-table-builder-for-acf-scf-front__cell<\/code><\/li>\n<\/ul>\n\n<p>You can style those classes directly with <code>CSS<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/recast-table-builder-for-acf-scf<\/code> directory, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the <code>Plugins<\/code> screen in WordPress.<\/li>\n<li>Make sure Advanced Custom Fields or Secure Custom Fields is installed and active.<\/li>\n<li>Add the <code>Table<\/code> field type to a field group.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20advanced%20custom%20fields%20or%20secure%20custom%20fields%3F\"><h3>Does this plugin require Advanced Custom Fields or Secure Custom Fields?<\/h3><\/dt>\n<dd><p>Yes. <code>Recast Table Builder for Advanced Custom Fields and Secure Custom Fields<\/code> extends the <code>ACF<\/code>\/<code>SCF<\/code> field API and requires <code>Advanced Custom Fields<\/code> or <code>Secure Custom Fields<\/code> to be active.<\/p><\/dd>\n<dt id=\"is%20this%20an%20acf%20table%20field%20plugin%3F\"><h3>Is this an ACF table field plugin?<\/h3><\/dt>\n<dd><p>Yes. This plugin adds a dedicated <code>Table<\/code> field type you can use as an <code>ACF table field<\/code>.<\/p><\/dd>\n<dt id=\"does%20this%20work%20as%20a%20secure%20custom%20fields%20table%20field%3F\"><h3>Does this work as a Secure Custom Fields table field?<\/h3><\/dt>\n<dd><p>Yes. The same <code>Table<\/code> field type works in <code>Secure Custom Fields (SCF)<\/code> field groups.<\/p><\/dd>\n<dt id=\"which%20cell%20types%20are%20supported%3F\"><h3>Which cell types are supported?<\/h3><\/dt>\n<dd><p>The plugin supports <code>text<\/code> cells.<\/p><\/dd>\n<dt id=\"how%20do%20i%20display%20the%20table%20in%20my%20theme%3F\"><h3>How do I display the table in my theme?<\/h3><\/dt>\n<dd><p>Use <code>get_field()<\/code> to retrieve the saved value and pass it to <code>recast_stf_render()<\/code>, for example:<\/p>\n\n<pre><code>$table = get_field( 'my_table' );\n\nif ( $table ) { echo recast_stf_render( $table ); }\n<\/code><\/pre><\/dd>\n<dt id=\"which%20php%20versions%20are%20supported%3F\"><h3>Which PHP versions are supported?<\/h3><\/dt>\n<dd><p>The plugin targets PHP 7.4 and newer. That matches the current minimum PHP version required by current releases of both Advanced Custom Fields and Secure Custom Fields.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.12<\/h4>\n\n<ul>\n<li>Prepared first public WordPress.org SVN release and synchronized versioning with current approved plugin naming and packaging.<\/li>\n<\/ul>\n\n<h4>1.1.10<\/h4>\n\n<ul>\n<li>Renamed the plugin to Recast Table Builder for Advanced Custom Fields and Secure Custom Fields.<\/li>\n<li>Updated slug and text domain to <code>recast-table-builder-for-acf-scf<\/code>.<\/li>\n<li>Standardized internal declarations with the <code>recast_stf_<\/code> prefix to reduce collisions.<\/li>\n<\/ul>\n\n<h4>1.1.9<\/h4>\n\n<ul>\n<li>Added per-field runtime config support so add-ons can control Recast Table Builder for Advanced Custom Fields and Secure Custom Fields features on a field-by-field basis.<\/li>\n<li>Updated the admin table UI to respect field-specific enabled cell types instead of only global plugin availability.<\/li>\n<\/ul>\n\n<h4>1.1.8<\/h4>\n\n<ul>\n<li>Fixed WYSIWYG table-value decoding so formatted content with quoted HTML attributes does not corrupt the saved table JSON.<\/li>\n<li>Tightened table-grid selectors and admin asset cache busting so WYSIWYG testing behaves more reliably in the editor.<\/li>\n<\/ul>\n\n<h4>1.1.7<\/h4>\n\n<ul>\n<li>Added compatibility handling for Pro basic WYSIWYG cells so saved formatted content is preserved and previewed safely when those cells are unavailable.<\/li>\n<li>Added shared table support for initializing and rendering add-on WYSIWYG cells safely inside the admin UI.<\/li>\n<\/ul>\n\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Added compatibility handling for Pro image cells so saved image data is preserved and previewed safely when those cells are unavailable.<\/li>\n<li>Allowed attachment-based image fields to initialize cleanly in the shared table UI for add-ons such as Recast Table Builder for Advanced Custom Fields and Secure Custom Fields Pro.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Refactored the free plugin into clearer modules for environment checks, dependencies, assets, values, rendering, and compatibility helpers.<\/li>\n<li>Split free core cell types from compatibility-only fallback cell types so optional Pro features are preserved without being treated as free features.<\/li>\n<li>Tightened rendered HTML allowlists to keep text and preview output safer while preserving readable locked previews for unavailable cell types.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Preserved file and link rendering when those cell types are unavailable and replaced locked admin warning boxes with muted saved-value previews.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Added a save-preparation hook so optional add-ons can resolve dynamic uploads before the table JSON is normalized.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fixed dynamic additional field templates so ACF-managed field types get unique keys and names per cell.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Moved optional cell implementations out of the free plugin so unavailable features cannot be enabled by a simple flag change.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Split the plugin architecture into a core plugin and add-on-ready cell type registry.<\/li>\n<li>Kept text cells in the plugin and locked unsupported cells safely when those cell types are unavailable.<\/li>\n<li>Added extension hooks so add-ons can enable extra cell types without replacing the main field.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Tightened dependency detection so the missing ACF or SCF notice appears only when a supported plugin is actually active.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Renamed the plugin from Recast ACF Table to Recast Table Builder for Advanced Custom Fields and Secure Custom Fields.<\/li>\n<li>Updated the internal text domain and helper names to match the new brand.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Documented first-class support for Secure Custom Fields.<\/li>\n<li>Updated dependency checks and admin notices to recognize either ACF or SCF.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added a front-end rendering helper for saved table values.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added runtime compatibility guards for WordPress and PHP versions.<\/li>\n<li>Replaced a PHP-only unique ID call with the WordPress helper for better long-term compatibility.<\/li>\n<li>Added a repeatable PHP compatibility check for PHP 7.4 through current PHP 8.x releases.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Prepared the plugin for WordPress.org distribution.<\/li>\n<li>Added a standard WordPress.org readme.<\/li>\n<li>Updated plugin metadata, licensing, and translation setup.<\/li>\n<li>Added an admin notice when Advanced Custom Fields is missing.<\/li>\n<li>Normalized and sanitized stored table data before saving.<\/li>\n<li>Improved admin-side field scripts and CSS for more reliable behavior.<\/li>\n<\/ul>","raw_excerpt":"Add a Table field for ACF and SCF to create editable custom data tables with rows and columns directly in WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/297501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=297501"}],"author":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/recastdigital"}],"wp:attachment":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=297501"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=297501"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=297501"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=297501"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=297501"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=297501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}