{"id":366754,"date":"2026-09-13T23:37:17","date_gmt":"2026-09-13T23:37:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/field-renamer-for-acf\/"},"modified":"2026-09-13T23:36:43","modified_gmt":"2026-09-13T23:36:43","slug":"esumo-field-renamer-for-acf","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/esumo-field-renamer-for-acf\/","author":23563637,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0","stable_tag":"1.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Esumo Field Renamer for ACF","header_author":"Esumo","header_description":"Rename simple ACF fields while keeping values, with previews, reviewed theme references and guarded rollback.","assets_banners_color":"","last_updated":"2026-09-13 23:36:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/esumo.pl","rating":0,"author_block_rating":0,"active_installs":0,"downloads":72,"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":"jayfromesumo","date":"2026-09-13 23:36:43","revision":3694274}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3694274,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3694274,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3694274,"resolution":"1","location":"assets","locale":"","width":1085,"height":806},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3694274,"resolution":"2","location":"assets","locale":"","width":1265,"height":712}},"screenshots":{"1":"Choose a field and prepare a migration before or after renaming it.","2":"Review recent operations and reopen their migration journals."}},"plugin_section":[],"plugin_tags":[2211,2010,4932,4155],"plugin_category":[59],"plugin_contributors":[280547],"plugin_business_model":[],"class_list":["post-366754","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-custom-fields","plugin_tags-developer-tools","plugin_tags-migration","plugin_category-utilities-and-tools","plugin_contributors-jayfromesumo","plugin_committers-jayfromesumo"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/esumo-field-renamer-for-acf\/assets\/icon-128x128.png?rev=3694274","icon_2x":"https:\/\/ps.w.org\/esumo-field-renamer-for-acf\/assets\/icon-256x256.png?rev=3694274","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/esumo-field-renamer-for-acf\/assets\/screenshot-1.png?rev=3694274","caption":"Choose a field and prepare a migration before or after renaming it."},{"src":"https:\/\/ps.w.org\/esumo-field-renamer-for-acf\/assets\/screenshot-2.png?rev=3694274","caption":"Review recent operations and reopen their migration journals."}],"raw_content":"<!--section=description-->\n<p>Renaming a field in Advanced Custom Fields changes its definition, but values already saved on posts can remain under the previous metadata name.<\/p>\n\n<p>Esumo Field Renamer for ACF supports both before and after renaming, preserving the field key, raw values and metadata row IDs. It is a free developer tool with no account, license key, telemetry or external service.<\/p>\n\n<p><strong>Workflow<\/strong><\/p>\n\n<ol>\n<li>Test on a copy of your site, keep a full database backup and pause content editing.<\/li>\n<li>Open Tools &gt; Field Renamer and choose Before renaming or After renaming.<\/li>\n<li>Select the field and enter its new name (Before) or previous name (After).<\/li>\n<li>Prepare a preview. Resolve any conflicts before starting a new preview.<\/li>\n<li>Optionally preview theme references, review every difference, and apply only checked files.<\/li>\n<li>Rename the field and migrate values (Before), or migrate values (After). Verify the affected pages and remaining code references.<\/li>\n<\/ol>\n\n<p>Before renaming supports native database definitions managed in the ACF editor. It changes only the field-name column and preserves the other field settings. PHP and Local JSON definitions must be renamed in their source first, then migrated with After renaming. Recent operations has its own tab; opening an operation there returns to its details.<\/p>\n\n<p>When a field is renamed through the ACF field editor, the plugin records a suggestion for its previous name. Data migration always requires an explicit action.<\/p>\n\n<p><strong>Supported in 1.0<\/strong><\/p>\n\n<p>Top-level Text, Textarea, Number, Email and URL fields in active field groups explicitly assigned to posts, pages or custom post types. Data belonging to a different ACF field key is skipped. Ambiguous references and occupied destination names block migration, including empty destination values.<\/p>\n\n<p>Nested fields, Repeater, Group, Flexible Content, Clone, ACF Blocks, Options Pages, attachments, revisions, users, terms and multisite are outside this version. The plugin does not edit definitions in PHP\/JSON, dynamic names, JavaScript, Twig or meta queries. Test compatibility with any additional ACF extensions.<\/p>\n\n<p><strong>Optional theme references<\/strong><\/p>\n\n<p>Review literal first arguments of get_field(), the_field(), get_field_object(), update_field() and delete_field() in PHP files of the active theme and its parent. Check each file before applying it. Calls use field names, so review their context if multiple field groups share a name. Dynamic, named and namespaced calls need manual review. Symbolic links, vendor and node_modules are excluded.<\/p>\n\n<p>Limits: 2,000 PHP files scanned, 512 KB per file, 50 matching files, and 2 MB of combined before\/after content. Writes require edit_themes permission, allowed file modifications and direct filesystem access. Pause deployments and file edits during the operation. Files are restored separately from database changes. Hash checks refuse later edits, and saved file copies allow recovery after a lost response.<\/p>\n\n<p>The preview checks write access to both the file and its directory. Unwritable files cannot be selected. Permissions are checked again before writing; existing theme permissions are never changed automatically. Replacement files preserve the original mode. Fix ownership\/permissions through your hosting tools or apply the reviewed differences in your code editor.<\/p>\n\n<p>MySQL \/ MariaDB require InnoDB for posts, postmeta and journal tables. SQLite requires the WordPress SQLite Database Integration drop-in 1.8.0 or later.<\/p>\n\n<p><strong>Recovery and data retention<\/strong><\/p>\n\n<p>Operations run in batches of up to 50 posts. Closing the tab stops subsequent requests; reopen the operation to resume. Completed requests remain recorded. Individual post changes and their journal updates use database transactions. On SQLite, each request also runs inside a write transaction.<\/p>\n\n<p>Before-mode rollback restores the native field name and unchanged values. After-mode rollback requires restoring the old name in the source definition first, keeping the same key, type and group. Rollback refuses later edits. Restore selected theme files separately. Resolve any reported difference before resuming, or recover from a full backup.<\/p>\n\n<p>The journal stores state and original metadata in <code>{prefix}fracf_jobs<\/code> and <code>{prefix}fracf_items<\/code>, and file copies in <code>{prefix}fracf_code<\/code>. Only administrators can use the tool. Metadata responses exclude raw field values; file previews show the relevant code lines to users allowed to edit themes. Journals are retained on deactivation and uninstall. Deleting a closed operation's journal also removes its file backups and rollback ability. Keep database backups and journal access appropriately protected.<\/p>\n\n<p>This is an independent plugin by Esumo and is not affiliated with or endorsed by Advanced Custom Fields.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate Advanced Custom Fields (free or Pro) separately.\nActivation is blocked while the ACF API is unavailable. If ACF is later deactivated, an administrator notice explains the requirement; existing journals are retained.<\/li>\n<li>Upload the plugin ZIP through Plugins &gt; Add Plugin, then activate it.<\/li>\n<li>Open Tools &gt; Field Renamer. Only administrators can access the tool.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20rename%20the%20field%20definition%20for%20me%3F\"><h3>Does this rename the field definition for me?<\/h3><\/dt>\n<dd><p>Yes in Before renaming mode, for native database definitions. For PHP\/JSON sources, rename the definition yourself and use After renaming.<\/p><\/dd>\n<dt id=\"does%20it%20update%20get_field%28%29%20calls%20or%20templates%3F\"><h3>Does it update get_field() calls or templates?<\/h3><\/dt>\n<dd><p>Optionally, after reviewing and checking the exact PHP file differences. Supported functions and limits are listed above. Other references require manual changes.<\/p><\/dd>\n<dt id=\"what%20if%20two%20groups%20use%20the%20same%20field%20name%3F\"><h3>What if two groups use the same field name?<\/h3><\/dt>\n<dd><p>The tool checks the hidden ACF field-key reference. Records belonging to another field are skipped; missing, invalid or duplicate references block migration.<\/p><\/dd>\n<dt id=\"is%20the%20journal%20a%20full%20backup%3F\"><h3>Is the journal a full backup?<\/h3><\/dt>\n<dd><p>No. It provides guarded rollback for unchanged migrated records. Keep a full database backup before using the tool.<\/p><\/dd>\n<dt id=\"can%20i%20rename%20a%20field%20using%20only%20different%20letter%20case%3F\"><h3>Can I rename a field using only different letter case?<\/h3><\/dt>\n<dd><p>No. Case-only renames are refused because common WordPress database collations do not distinguish those names.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial free release: before\/after modes, preview, conflict detection, batched migrations, reviewed theme-file changes, guarded rollback and history tab.<\/li>\n<\/ul>","raw_excerpt":"Rename a simple ACF field while keeping its values. Preview data and theme references, detect conflicts, and keep a guarded rollback journal.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/366754","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=366754"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jayfromesumo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=366754"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=366754"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=366754"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=366754"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=366754"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=366754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}