{"id":343562,"date":"2026-07-28T04:28:18","date_gmt":"2026-07-28T04:28:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dynamic-fields-builder\/"},"modified":"2026-09-01T13:08:05","modified_gmt":"2026-09-01T13:08:05","slug":"massoftind-field-builder","status":"publish","type":"plugin","link":"https:\/\/pt-ao.wordpress.org\/plugins\/massoftind-field-builder\/","author":23538662,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.9.197","stable_tag":"1.9.197","tested":"7.1","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"Massoftind Custom Fields & Field Builder","header_author":"Mass Software Solutions","header_description":"A lightweight, modular custom fields builder with modern UI, AJAX interactions, and clean architecture.","assets_banners_color":"e5f0fb","last_updated":"2026-09-01 13:08:05","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/masssoftwaresolutions.com\/","header_plugin_uri":"","header_author_uri":"https:\/\/masssoftwaresolutions.com\/","rating":4.8,"author_block_rating":0,"active_installs":10,"downloads":829,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.58":{"tag":"1.3.58","author":"sandipbiswas123","date":"2026-07-28 04:41:19","revision":3625367},"1.3.59":{"tag":"1.3.59","author":"sandipbiswas123","date":"2026-07-28 08:02:18","revision":3625583},"1.3.61":{"tag":"1.3.61","author":"sandipbiswas123","date":"2026-07-29 05:50:22","revision":3626715},"1.9.100":{"tag":"1.9.100","author":"sandipbiswas123","date":"2026-08-07 07:35:20","revision":3637533},"1.9.101":{"tag":"1.9.101","author":"sandipbiswas123","date":"2026-08-07 09:34:56","revision":3637653},"1.9.112":{"tag":"1.9.112","author":"sandipbiswas123","date":"2026-08-10 10:24:11","revision":3640354},"1.9.133":{"tag":"1.9.133","author":"devmanishpathak","date":"2026-08-17 09:33:26","revision":3650787},"1.9.134":{"tag":"1.9.134","author":"devmanishpathak","date":"2026-08-17 10:39:37","revision":3650929},"1.9.135":{"tag":"1.9.135","author":"devmanishpathak","date":"2026-08-17 11:06:28","revision":3650989},"1.9.136":{"tag":"1.9.136","author":"devmanishpathak","date":"2026-08-18 04:45:56","revision":3652018},"1.9.137":{"tag":"1.9.137","author":"devmanishpathak","date":"2026-08-18 05:19:54","revision":3652040},"1.9.138":{"tag":"1.9.138","author":"devmanishpathak","date":"2026-08-19 11:56:57","revision":3654546},"1.9.139":{"tag":"1.9.139","author":"devmanishpathak","date":"2026-08-20 05:35:06","revision":3655844},"1.9.144":{"tag":"1.9.144","author":"devmanishpathak","date":"2026-08-20 06:16:33","revision":3655947},"1.9.145":{"tag":"1.9.145","author":"devmanishpathak","date":"2026-08-20 07:36:44","revision":3656133},"1.9.146":{"tag":"1.9.146","author":"devmanishpathak","date":"2026-08-20 08:16:16","revision":3656203},"1.9.147":{"tag":"1.9.147","author":"devmanishpathak","date":"2026-08-20 09:19:56","revision":3656340},"1.9.148":{"tag":"1.9.148","author":"devmanishpathak","date":"2026-08-20 09:52:46","revision":3656413},"1.9.149":{"tag":"1.9.149","author":"devmanishpathak","date":"2026-08-20 09:57:39","revision":3656429},"1.9.153":{"tag":"1.9.153","author":"devmanishpathak","date":"2026-08-20 11:58:02","revision":3656749},"1.9.156":{"tag":"1.9.156","author":"devmanishpathak","date":"2026-08-21 10:55:36","revision":3658832},"1.9.167":{"tag":"1.9.167","author":"sandipbiswas123","date":"2026-08-24 05:31:21","revision":3662646},"1.9.170":{"tag":"1.9.170","author":"devmanishpathak","date":"2026-08-25 05:15:36","revision":3664588},"1.9.173":{"tag":"1.9.173","author":"devmanishpathak","date":"2026-08-25 11:27:47","revision":3665201},"1.9.174":{"tag":"1.9.174","author":"devmanishpathak","date":"2026-08-26 13:21:37","revision":3667098},"1.9.175":{"tag":"1.9.175","author":"devmanishpathak","date":"2026-08-27 05:34:54","revision":3668133},"1.9.176":{"tag":"1.9.176","author":"devmanishpathak","date":"2026-08-27 07:20:06","revision":3668258},"1.9.177":{"tag":"1.9.177","author":"devmanishpathak","date":"2026-08-27 09:01:29","revision":3668398},"1.9.178":{"tag":"1.9.178","author":"devmanishpathak","date":"2026-08-27 13:03:08","revision":3668894},"1.9.179":{"tag":"1.9.179","author":"devmanishpathak","date":"2026-08-28 07:05:56","revision":3669939},"1.9.180":{"tag":"1.9.180","author":"devmanishpathak","date":"2026-08-28 07:29:44","revision":3669971},"1.9.181":{"tag":"1.9.181","author":"devmanishpathak","date":"2026-08-31 05:09:13","revision":3673393},"1.9.182":{"tag":"1.9.182","author":"devmanishpathak","date":"2026-08-31 05:39:29","revision":3673418},"1.9.183":{"tag":"1.9.183","author":"devmanishpathak","date":"2026-08-31 06:10:54","revision":3673439},"1.9.184":{"tag":"1.9.184","author":"devmanishpathak","date":"2026-08-31 06:16:28","revision":3673447},"1.9.185":{"tag":"1.9.185","author":"devmanishpathak","date":"2026-08-31 06:24:49","revision":3673456},"1.9.186":{"tag":"1.9.186","author":"devmanishpathak","date":"2026-08-31 06:55:06","revision":3673501},"1.9.187":{"tag":"1.9.187","author":"devmanishpathak","date":"2026-08-31 07:47:38","revision":3673588},"1.9.188":{"tag":"1.9.188","author":"devmanishpathak","date":"2026-09-01 06:40:28","revision":3675447},"1.9.189":{"tag":"1.9.189","author":"devmanishpathak","date":"2026-09-01 07:10:28","revision":3675495},"1.9.19":{"tag":"1.9.19","author":"sandipbiswas123","date":"2026-07-31 12:46:11","revision":3630011},"1.9.190":{"tag":"1.9.190","author":"devmanishpathak","date":"2026-09-01 09:18:08","revision":3675750},"1.9.191":{"tag":"1.9.191","author":"devmanishpathak","date":"2026-09-01 09:20:52","revision":3675761},"1.9.192":{"tag":"1.9.192","author":"devmanishpathak","date":"2026-09-01 10:15:56","revision":3675835},"1.9.195":{"tag":"1.9.195","author":"devmanishpathak","date":"2026-09-01 12:18:57","revision":3676071},"1.9.196":{"tag":"1.9.196","author":"devmanishpathak","date":"2026-09-01 12:34:27","revision":3676094},"1.9.197":{"tag":"1.9.197","author":"devmanishpathak","date":"2026-09-01 13:08:05","revision":3676146},"1.9.36":{"tag":"1.9.36","author":"sandipbiswas123","date":"2026-08-03 10:38:40","revision":3632715},"1.9.5":{"tag":"1.9.5","author":"sandipbiswas123","date":"2026-07-31 09:46:01","revision":3629785},"1.9.65":{"tag":"1.9.65","author":"sandipbiswas123","date":"2026-08-04 10:14:06","revision":3634036},"1.9.73":{"tag":"1.9.73","author":"sandipbiswas123","date":"2026-08-05 05:19:31","revision":3634843}},"upgrade_notice":{"1.9.192":"<p>Removes the frontend forms shortcode, Gutenberg form block, and related settings. Replace with your own form plugin or custom code if needed.<\/p>","1.9.191":"<p>Fixes WordPress.org readme short description length (no functional changes).<\/p>","1.9.190":"<p>Clearer admin menu labels and improved WordPress.org listing copy. No slug, data, or behavior changes.<\/p>","1.9.189":"<p>Display name updated to Massoftind Custom Fields &amp; Field Builder for better WordPress.org discoverability. Slug, URLs, and all data are unchanged.<\/p>","1.9.188":"<p>Gutenberg blocks (Block Bindings, Field Group block, Custom Blocks registry), ACF migration tool, and security hardening for REST\/AJAX. Bricks, WPML, qTranslate, and Elementor integrations preserved.<\/p>","1.9.178":"<p>Phases 5\u20137: Local groups\/JSON, bidirectional relationships, frontend forms, Elementor Pro Loop, WPGraphQL, WP-CLI Local JSON, stronger Clone, and related REST\/List View improvements. Compat hardenings for Elementor\/WPML\/qTranslate; Bricks cores untouched.<\/p>","1.9.177":"<p>Taxonomies can show a term filter dropdown on the post list toolbar (Show as list filter).<\/p>","1.9.176":"<p>Uninstall no longer deletes field groups or settings \u2014 safe to delete and reinstall.<\/p>","1.9.175":"<p>Content Sync now shows a clear \u201cSync complete\u201d success state when finished.<\/p>","1.9.174":"<p>Featured Posts and Hidden Login settings, List View integration, Settings UI clarifications, and PHPCS hardening.<\/p>","1.9.173":"<p>Site Section WPML Copy now mirrors option values across languages.<\/p>","1.9.172":"<p>Fixes WPML Don\u2019t translate preference not saving on field groups.<\/p>","1.9.171":"<p>Repeater and Group fields gain an editor-only Layout option (Block \/ Table \/ Row).<\/p>","1.9.170":"<p>Content Order front-end sorting hardened for Bricks\/Elementor\/WPML.<\/p>","1.9.169":"<p>Content Order now sorts enabled post types by menu_order on the front end.<\/p>","1.9.168":"<p>Developer Panel shows option context for Site Section field groups.<\/p>","1.9.156":"<p>Fixes Gallery thumbnail\/icon overlap after drag and inside meta tabs.<\/p>","1.9.155":"<p>Fixes Gallery reorder icon glitches, adds Repeater row drag sorting, and hardens Content Order saving.<\/p>","1.9.154":"<p>Fixes taxonomy term banners when themes call get_field( $name, get_queried_object() ) with a WP_Term.<\/p>","1.9.153":"<p>Menu SVG icons render as inline SVG (theme img tags converted) without theme edits.<\/p>","1.9.152":"<p>Fixes Menu SVG \/ menu-item fields for existing theme filters that call get_field( $name, $item ) and use the value as an image URL \u2014 no theme edits required.<\/p>","1.9.151":"<p>Adds Elementor Dynamic Tags (Massoftind Custom Fields &amp; Field Builder group) for CMS page building without ACF.<\/p>","1.9.150":"<p>Adds Menu Item location fields (Appearance \u2192 Menus) with ACF import compatibility.<\/p>","1.9.149":"<p>Hardens Bricks loop context for WPML\/qTranslate safety (format filters + stale loop clear).<\/p>","1.9.148":"<p>Fixes nested have_rows() for Group fields inside repeaters (e.g. hero video_section).<\/p>","1.9.147":"<p>Fixes empty Bricks repeater boxes (Mission \/ Why Live Local) when using {acf_repeater_subfield} tags.<\/p>","1.9.146":"<p>Fixes get_sub_field() Image ID return for missing sub-field defs, and adds SVG-safe attachment image helpers.<\/p>","1.9.145":"<p>Fixes Bricks stale loop context for group fields, ACF star_rating_field alias, and star HTML in Bricks DD.<\/p>","1.9.143":"<p>Fixes empty Bricks catalog\/service sections on homepage (legacy ACF options + Site Sections).<\/p>","1.9.142":"<p>Fixes empty Bricks global fields (footer, homepage) when ACF Options Page fields are stored in Site Sections.<\/p>","1.9.141":"<p>Urgent: fixes Bricks Logo\/Image fatal on sites using 1.9.140.<\/p>","1.9.140":"<p>Fix Bricks templates showing raw <code>{acf_*}<\/code> \/ <code>{ACF_*}<\/code> tags after 1.9.139.<\/p>","1.9.139":"<p>Fix Bricks <code>{acf_*}<\/code> tags without breaking WPML or qTranslate \u2014 native Bricks ACF provider stays off when only the MFB shim exists; MFB BricksSupport handles dynamic data.<\/p>","1.9.138":"<p>Fix empty repeater tabs (have_rows called for nav then content) and stop the ACF shim from activating qTranslate-X \/ ACFML as if real ACF were installed.<\/p>","1.9.137":"<p>Fix qTranslate-X fatal <code>acf_get_field_type()<\/code> missing from the ACF compatibility shim.<\/p>","1.9.136":"<p>Fix WP All Import ACF Add-On crash after each record (<code>acf_save_post_revision<\/code> missing from the ACF shim).<\/p>","1.9.135":"<p>Fix WP All Import ACF Add-On activation output by loading the ACF compatibility shim earlier.<\/p>","1.9.134":"<p>ACF\/WPML compatibility: WP All Import ACF Add-On support without ACF installed; WPML JSON config fix.<\/p>","1.9.133":"<p>Plugin Check fixes: Google Maps script versioning and Stable tag alignment. Includes Google Map field from 1.9.132.<\/p>","1.9.73":"<p>Image fields use compact Edit \/ Remove overlays on the thumbnail.<\/p>","1.9.72":"<p>WYSIWYG [embed] \/ YouTube videos now render on the front end.<\/p>","1.9.71":"<p>Critical: restores Product\/Blog category lists emptied by Content Order + WPML conflict.<\/p>","1.9.70":"<p>Product category Content Order now persists after refresh (syncs WooCommerce order meta).<\/p>","1.9.68":"<p>Taxonomy multi-select tags can be drag-reordered (Select Popular Categories order is saved).<\/p>","1.9.67":"<p>Content Order saves Product categories again; shipping\/other admin notices hidden on Field Builder pages.<\/p>","1.9.66":"<p>Richer WordPress.org Details page \u2014 modern feature list (gallery links, min\/max, WPML, integrations).<\/p>","1.9.5":"<p>Stable tag aligned with plugin version; gallery Image Array return format; video walkthrough link.<\/p>","1.6.0":"<p>Adds Layout Blocks for composable page sections, portable flexible-layout JSON import, and get_row_layout() compatibility.<\/p>","1.5.0":"<p>Adds migration helpers: legacy meta read fallback, Tools migration, and Settings toggles for template compatibility.<\/p>","1.3.44":"<p>Adds native qTranslate-X \/ qTranslate-XT support for multilingual field values.<\/p>","1.3.43":"<p>WordPress.org-first packaging: safer readme tags and official plugin information flow.<\/p>","1.3.42":"<p>Plugin Check warning fixes for developer code generation and field group ordering.<\/p>","1.3.41":"<p>Plugin Check error fixes; gallery libraries bundled locally.<\/p>","1.3.40":"<p>WordPress.org submission package; requires WordPress 6.2+.<\/p>","1.3.39":"<p>Developer Panel conditional-logic template examples for nested fields.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":1,"5":3},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3625359,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3625359,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3625359,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3625359,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3676146,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=massoftind-fb-field-groups\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"features\":{\"networking\":true},\"login\":true,\"plugins\":[\"massoftind-field-builder\"],\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"massoftind-field-builder\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.3.58","1.3.59","1.3.61","1.9.100","1.9.101","1.9.112","1.9.133","1.9.134","1.9.135","1.9.136","1.9.137","1.9.138","1.9.139","1.9.144","1.9.145","1.9.146","1.9.147","1.9.148","1.9.149","1.9.153","1.9.156","1.9.167","1.9.170","1.9.173","1.9.174","1.9.175","1.9.176","1.9.177","1.9.178","1.9.179","1.9.180","1.9.181","1.9.182","1.9.183","1.9.184","1.9.185","1.9.186","1.9.187","1.9.188","1.9.189","1.9.19","1.9.190","1.9.191","1.9.192","1.9.195","1.9.196","1.9.197","1.9.36","1.9.5","1.9.65","1.9.73"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3625369,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3625369,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3634841,"resolution":"3","location":"assets","locale":"","width":1536,"height":1024},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3625369,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3634841,"resolution":"5","location":"assets","locale":"","width":1536,"height":1024}},"screenshots":{"1":"Simple &amp; Intuitive \u2014 custom fields metabox UI: create field groups and edit values in a clean modern admin.","2":"Made For Developers \u2014 template helpers, post meta access, and copy-ready snippets from the developer panel.","3":"All About Fields \u2014 54 field types: Text, WYSIWYG, Image, Gallery, Table, Phone, Country, Tags, Relationship, Repeater, Layout Blocks, and more.","4":"Location Rules \u2014 show field groups by post type, page template, taxonomy, role, Gutenberg block, and more.","5":"Latest features \u2014 ACF migration, Gutenberg block bindings, Custom Blocks, Gallery Link URL + Target, WPML-ready relationships."}},"plugin_section":[],"plugin_tags":[278640,2010,245286,2205,2244],"plugin_category":[50],"plugin_contributors":[272907,273581,273580,273558],"plugin_business_model":[],"class_list":["post-343562","plugin","type-plugin","status-publish","hentry","plugin_tags-acf-migration","plugin_tags-custom-fields","plugin_tags-field-builder","plugin_tags-metabox","plugin_tags-repeater","plugin_category-media","plugin_contributors-devmanishpathak","plugin_contributors-massoft","plugin_contributors-masssoftware","plugin_contributors-sandipbiswas123","plugin_committers-devmanishpathak","plugin_committers-massoft","plugin_committers-masssoftware","plugin_committers-sandipbiswas123","plugin_support_reps-devmanishpathak"],"banners":{"banner":"https:\/\/ps.w.org\/massoftind-field-builder\/assets\/banner-772x250.png?rev=3625359","banner_2x":"https:\/\/ps.w.org\/massoftind-field-builder\/assets\/banner-1544x500.png?rev=3625359","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/massoftind-field-builder\/assets\/icon-128x128.png?rev=3625359","icon_2x":"https:\/\/ps.w.org\/massoftind-field-builder\/assets\/icon-256x256.png?rev=3625359","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/massoftind-field-builder\/assets\/screenshot-1.png?rev=3625369","caption":"Simple &amp; Intuitive \u2014 custom fields metabox UI: create field groups and edit values in a clean modern admin."},{"src":"https:\/\/ps.w.org\/massoftind-field-builder\/assets\/screenshot-2.png?rev=3625369","caption":"Made For Developers \u2014 template helpers, post meta access, and copy-ready snippets from the developer panel."},{"src":"https:\/\/ps.w.org\/massoftind-field-builder\/assets\/screenshot-3.png?rev=3634841","caption":"All About Fields \u2014 54 field types: Text, WYSIWYG, Image, Gallery, Table, Phone, Country, Tags, Relationship, Repeater, Layout Blocks, and more."},{"src":"https:\/\/ps.w.org\/massoftind-field-builder\/assets\/screenshot-4.png?rev=3625369","caption":"Location Rules \u2014 show field groups by post type, page template, taxonomy, role, Gutenberg block, and more."},{"src":"https:\/\/ps.w.org\/massoftind-field-builder\/assets\/screenshot-5.png?rev=3634841","caption":"Latest features \u2014 ACF migration, Gutenberg block bindings, Custom Blocks, Gallery Link URL + Target, WPML-ready relationships."}],"raw_content":"<!--section=description-->\n<p><strong>Massoftind Custom Fields &amp; Field Builder<\/strong> is a modern <strong>custom fields<\/strong> and <strong>field builder<\/strong> plugin for WordPress. Build reusable field groups with a clean visual UI, add fields to the post edit <strong>metabox<\/strong>, nest <strong>repeaters<\/strong> and flexible <strong>layout blocks<\/strong>, attach media and <strong>relationship fields<\/strong>, and render values safely in your theme with <code>get_field<\/code>-style helpers.<\/p>\n\n<p>Use it as a standalone <strong>custom field builder<\/strong>, register <strong>custom post types<\/strong> and <strong>custom taxonomies<\/strong>, or <strong>migrate from ACF<\/strong> (Advanced Custom Fields) with the built-in import tool \u2014 location rules, conditional logic, repeaters, and flexible content layouts carry over.<\/p>\n\n<h4>Highlights<\/h4>\n\n<ul>\n<li><strong>Visual field builder<\/strong> \u2014 drag-and-drop fields, search, duplicate, Browse Fields type switcher<\/li>\n<li><strong>54 field types<\/strong> \u2014 basic, date\/time, media, content, choices, relations, layout, and advanced (table, phone, country, address, tags, image hotspot, and more)<\/li>\n<li><strong>Nested structures<\/strong> \u2014 Repeater, Group, Accordion, Tabs, Layout Blocks<\/li>\n<li><strong>Smart location rules<\/strong> \u2014 post type, template, taxonomy, user form, and custom filters<\/li>\n<li><strong>Conditional logic<\/strong> \u2014 show\/hide fields based on other field values<\/li>\n<li><strong>Developer-first<\/strong> \u2014 copy-ready PHP snippets, Filters &amp; Hooks guide, optional REST API<\/li>\n<li><strong>Bricks Builder<\/strong> \u2014 <code>{mfb_field}<\/code> Dynamic Data tags + Massoftind Repeater query loop (coexists with ACF Pro <code>{acf_\u2026}<\/code>)<\/li>\n<li><strong>Elementor<\/strong> \u2014 Massoftind Dynamic Tags for all 54 field types (text, image, URL, gallery, color, number) including Table, Phone, Country, Tags, and Markdown<\/li>\n<li><strong>Multilingual-ready<\/strong> \u2014 WPML \/ WCML and qTranslate-X \/ qTranslate-XT<\/li>\n<li><strong>Try instantly<\/strong> \u2014 <a href=\"https:\/\/playground.wordpress.net\/?plugin=massoftind-field-builder&amp;url=\/wp-admin\/admin.php%3Fpage%3Dmassoftind-fb-field-groups&amp;php=8.2\">WordPress Playground live demo<\/a><\/li>\n<\/ul>\n\n<h4>ACF migration &amp; compatibility<\/h4>\n\n<ul>\n<li><strong>Migrate from ACF<\/strong> \u2014 Tools \u2192 Migrate from ACF scans real Advanced Custom Fields (free or PRO) field groups and imports them with a report of skipped or downgraded field types<\/li>\n<li><strong>ACF alternative<\/strong> \u2014 standalone custom fields plugin with metabox UI, repeaters, flexible content (Layout Blocks), and theme helpers (<code>massoftind_fb_get<\/code>, <code>have_rows<\/code>, optional <code>get_field<\/code> aliases)<\/li>\n<li><strong>Import \/ export JSON<\/strong> \u2014 move field groups between sites; compatible portable field-group JSON is normalized on import<\/li>\n<li><strong>Bricks ACF tag alias<\/strong> \u2014 keep existing <code>{acf_\u2026}<\/code> dynamic tags and repeater query loops after switching from ACF Pro<\/li>\n<\/ul>\n\n<h4>Gutenberg custom fields &amp; blocks<\/h4>\n\n<ul>\n<li><strong>Block bindings<\/strong> \u2014 bind core blocks (Paragraph, Image, Heading, etc.) to custom field values via the <code>massoftind-fb\/field<\/code> binding source<\/li>\n<li><strong>Massoftind Field Group block<\/strong> \u2014 pick a field group in the block editor and edit fields in a modal (WYSIWYG, media, conditional logic)<\/li>\n<li><strong>Custom blocks registry<\/strong> \u2014 create named Gutenberg blocks from the admin; attach field groups with a Block location rule<\/li>\n<li><strong>Front-end rendering<\/strong> \u2014 block field values use the same formatting filters as post meta fields<\/li>\n<\/ul>\n\n<h4>Try a live demo<\/h4>\n\n<p>Open WordPress Playground with the plugin preinstalled:<\/p>\n\n<p><a href=\"https:\/\/playground.wordpress.net\/?plugin=massoftind-field-builder&amp;url=\/wp-admin\/admin.php%3Fpage%3Dmassoftind-fb-field-groups&amp;php=8.2\">Try Massoftind Custom Fields &amp; Field Builder in WordPress Playground<\/a><\/p>\n\n<h4>Video walkthrough<\/h4>\n\n<p>https:\/\/www.youtube.com\/watch?v=6Z7VDzOmx1M<\/p>\n\n<h4>Field types<\/h4>\n\n<ul>\n<li><strong>Basic:<\/strong> Text, Textarea, Number, Email, URL, Password, Hidden, Slug, Phone, Range, Color<\/li>\n<li><strong>Date &amp; time:<\/strong> Date, Date &amp; Time, Time, Date Range<\/li>\n<li><strong>Media:<\/strong> Image, Image Hotspot, Gallery, File, Video, YouTube<\/li>\n<li><strong>Content:<\/strong> WYSIWYG, Code Editor, Markdown, Shortcode, Link, Page Link, oEmbed, Google Map, Message<\/li>\n<li><strong>Choices:<\/strong> Select, Checkbox, Radio, Button Group, Toggle, Star Rating, Country, Tags<\/li>\n<li><strong>Relations:<\/strong> Post Object, Relationship, Taxonomy, User, Nav Menu, Post Types<\/li>\n<li><strong>Layout:<\/strong> Repeater, Group, Accordion, Tabs, Layout Blocks, Clone, Separator<\/li>\n<li><strong>Advanced:<\/strong> Icon Picker, Address, Table<\/li>\n<\/ul>\n\n<h4>Modern media &amp; gallery<\/h4>\n\n<ul>\n<li>Gallery and Image return formats: Image ID, Image URL, or <strong>Image Array<\/strong><\/li>\n<li>Gallery layouts: Card \/ Masonry with optional lightbox<\/li>\n<li>Per-image <strong>Link URL<\/strong> + <strong>Link Target<\/strong> (<code>_blank<\/code>, <code>_self<\/code>, <code>_parent<\/code>, <code>_top<\/code>) in the Media sidebar<\/li>\n<li>Theme loops can use <code>$img['external_url']<\/code> and <code>$img['target']<\/code> (or <code>massoftind_fb_the_gallery()<\/code>)<\/li>\n<\/ul>\n\n<h4>Relationships &amp; taxonomies<\/h4>\n\n<ul>\n<li><strong>Relationship field<\/strong> and <strong>post object<\/strong> picker \u2014 dual-list UI with search, filters, and drag reorder<\/li>\n<li><strong>WYSIWYG field<\/strong>, <strong>gallery field<\/strong>, and other meta fields stored as prefixed <strong>post meta<\/strong><\/li>\n<li><strong>Allow Multiple<\/strong> with optional <strong>Min \/ Max<\/strong> selection limits<\/li>\n<li>WPML-aware titles \u2014 Available and Selected stay in the current admin language<\/li>\n<li>Taxonomy multi-select preserves pick order; optional <strong>Exclude Terms<\/strong> picker<\/li>\n<li>Taxonomy <strong>Min \/ Max<\/strong> when multiple is enabled<\/li>\n<\/ul>\n\n<h4>Builder &amp; admin experience<\/h4>\n\n<ul>\n<li>Drag-and-drop <strong>field builder<\/strong> with nested Sub Fields<\/li>\n<li><strong>Location rules<\/strong> (post type, page template, taxonomy, role, Gutenberg block, and more)<\/li>\n<li><strong>Conditional logic<\/strong> on fields<\/li>\n<li>Import \/ export field groups as JSON<\/li>\n<li><strong>Custom post types<\/strong>, <strong>custom taxonomies<\/strong>, Site Sections, List Views, and <strong>Content Order<\/strong><\/li>\n<li>Settings: Preferences, Field Usage Guide, <strong>Filters &amp; Hooks<\/strong> reference<\/li>\n<li>Optional Classic Editor toggle and SVG upload control<\/li>\n<li>Onboarding checklist and in-plugin documentation<\/li>\n<\/ul>\n\n<h4>Multilingual &amp; integrations<\/h4>\n\n<ul>\n<li><strong>WPML custom fields<\/strong> \u2014 translate\/copy field values; WCML product sync; review WPML \u2192 Settings \u2192 Custom Fields Translation<\/li>\n<li><strong>qTranslate fields<\/strong> \u2014 language buttons on text-like fields with qTranslate-X \/ qTranslate-XT<\/li>\n<li><strong>Yoast SEO \/ Premium<\/strong> and <strong>Rank Math \/ Pro<\/strong> \u2014 custom field variables<\/li>\n<li><strong>WooCommerce<\/strong> location rules for products<\/li>\n<li><strong>WP All Import Pro<\/strong> \/ <strong>WP All Export Pro<\/strong> field exposure<\/li>\n<li><strong>Elementor<\/strong> (Free + Pro) \u2014 Massoftind Dynamic Tags group<\/li>\n<\/ul>\n\n<h4>Template helpers<\/h4>\n\n<p>Use in your theme:<\/p>\n\n<ul>\n<li><code>massoftind_fb_get()<\/code> \/ <code>massoftind_fb_update()<\/code><\/li>\n<li><code>massoftind_fb_have_rows()<\/code> \/ <code>massoftind_fb_the_row()<\/code> \/ <code>massoftind_fb_sub_field()<\/code><\/li>\n<li><code>massoftind_fb_image()<\/code> \/ <code>massoftind_fb_gallery()<\/code> \/ <code>massoftind_fb_the_gallery()<\/code><\/li>\n<li><code>massoftind_fb_terms()<\/code> \/ <code>massoftind_fb_date()<\/code> and more<\/li>\n<\/ul>\n\n<p>Optional template-compatibility aliases (<code>get_field<\/code>, <code>have_rows<\/code>, \u2026) can be enabled in Settings for existing theme code.<\/p>\n\n<h4>Bricks Builder<\/h4>\n\n<p>When <a href=\"https:\/\/bricksbuilder.io\/\">Bricks Builder<\/a> is active (Settings \u2192 Bricks Dynamic Data on by default):<\/p>\n\n<ul>\n<li>Use <code>{mfb_field_name}<\/code> in Dynamic Data (group <strong>Massoftind Custom Fields &amp; Field Builder<\/strong>)<\/li>\n<li>Options: <code>{mfb_option:field_name}<\/code><\/li>\n<li>Repeaters: Query Loop type <strong>Massoftind Repeater<\/strong>, set Meta Key to the repeater name, use <code>{mfb_row:sub_field}<\/code> inside the loop<\/li>\n<li>ACF Pro can stay installed \u2014 <code>{acf_\u2026}<\/code> tags are not changed; rebind templates to <code>{mfb_\u2026}<\/code> only when migrating fields<\/li>\n<li><strong>Or deactivate ACF:<\/strong> with <strong>Bricks ACF tag alias<\/strong> (default on), existing <code>{acf_\u2026}<\/code> tags and ACF repeater query loops are resolved by Massoftind \u2014 no Bricks template edits<\/li>\n<\/ul>\n\n<h4>Elementor<\/h4>\n\n<p>When <a href=\"https:\/\/elementor.com\/\">Elementor<\/a> is active (Settings \u2192 Elementor Dynamic Tags on by default):<\/p>\n\n<ul>\n<li><strong>Elementor dynamic tags<\/strong> \u2014 open any widget control that supports Dynamic Tags \u2192 group <strong>Massoftind Custom Fields &amp; Field Builder<\/strong><\/li>\n<li>Tags: <strong>Massoftind Field<\/strong> (text), <strong>Image<\/strong>, <strong>URL<\/strong>, <strong>Gallery<\/strong>, <strong>Color<\/strong>, <strong>Number<\/strong><\/li>\n<li>Source: <strong>Current post \/ term<\/strong> or <strong>Site Sections \/ Options<\/strong><\/li>\n<li>Nested Group fields appear as <code>parent_child<\/code> names in the picker<\/li>\n<li>Prefer these tags for new CMS builds; optional ACF shim still helps some Elementor Pro ACF widgets after migration<\/li>\n<\/ul>\n\n<h4>Privacy &amp; third-party services<\/h4>\n\n<ul>\n<li>Does <strong>not<\/strong> phone home or send site data to Massoftind<\/li>\n<li>YouTube fields may load thumbnails\/embeds from YouTube only when configured \u2014 see <a href=\"https:\/\/www.youtube.com\/t\/terms\">YouTube Terms<\/a><\/li>\n<li>SVG uploads are <strong>off by default<\/strong> (Settings \u2192 Allow SVG Uploads)<\/li>\n<\/ul>\n\n<h4>Optional companion<\/h4>\n\n<p>Works alongside <strong>Dynamic Content Builder<\/strong> for front-end listings. No other plugins are required to use Field Builder.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>massoftind-field-builder<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>Massoftind Custom Fields &amp; Field Builder<\/strong>.<\/li>\n<li>Open <strong>Field Builders<\/strong> in the admin menu.<\/li>\n<li>Create a field group, add fields, set location rules, and save.<\/li>\n<li>Edit matching content and use template helpers (or the developer panel snippets) in your theme.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20another%20custom%20fields%20plugin%3F\"><h3>Do I need another custom fields plugin?<\/h3><\/dt>\n<dd><p>No. Massoftind Custom Fields &amp; Field Builder is a standalone <strong>custom field builder<\/strong> with its own <strong>metabox<\/strong> UI, <strong>repeaters<\/strong>, <strong>relationship fields<\/strong>, and theme helpers.<\/p><\/dd>\n<dt id=\"can%20i%20migrate%20from%20acf%20%28advanced%20custom%20fields%29%3F\"><h3>Can I migrate from ACF (Advanced Custom Fields)?<\/h3><\/dt>\n<dd><p>Yes. With real ACF (free or PRO) active, open <strong>Field Builders \u2192 Migrate from ACF<\/strong>, select field groups, and import them. Location rules, conditional logic, repeaters, and flexible content layouts are converted; unsupported field types are reported.<\/p><\/dd>\n<dt id=\"is%20this%20an%20acf%20alternative%3F\"><h3>Is this an ACF alternative?<\/h3><\/dt>\n<dd><p>Yes. It is a full <strong>custom fields<\/strong> plugin on its own \u2014 field groups, metabox UI, repeaters, flexible content (Layout Blocks), options (Site Sections), custom post types, and custom taxonomies. Optional ACF compatibility helpers ease theme and page-builder migration.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20gutenberg%20and%20block%20bindings%3F\"><h3>Does it work with Gutenberg and block bindings?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>block bindings<\/strong> (<code>massoftind-fb\/field<\/code>) to bind core blocks to field values, the <strong>Massoftind Field Group<\/strong> block for modal editing, and the <strong>Custom Blocks<\/strong> registry for named Gutenberg blocks tied to field groups.<\/p><\/dd>\n<dt id=\"can%20i%20register%20custom%20post%20types%20and%20taxonomies%3F\"><h3>Can I register custom post types and taxonomies?<\/h3><\/dt>\n<dd><p>Yes. <strong>Field Builders \u2192 Post Types<\/strong> and <strong>Taxonomies<\/strong> let you register CPTs and taxonomies from the admin (labels, supports, rewrite rules, and more) without extra code.<\/p><\/dd>\n<dt id=\"can%20i%20try%20it%20before%20installing%3F\"><h3>Can I try it before installing?<\/h3><\/dt>\n<dd><p>Yes \u2014 <a href=\"https:\/\/playground.wordpress.net\/?plugin=massoftind-field-builder&amp;url=\/wp-admin\/admin.php%3Fpage%3Dmassoftind-fb-field-groups&amp;php=8.2\">WordPress Playground live demo<\/a>.<\/p><\/dd>\n<dt id=\"where%20are%20field%20values%20stored%3F\"><h3>Where are field values stored?<\/h3><\/dt>\n<dd><p>As prefixed <strong>post meta<\/strong> (and option storage for Site Sections). Field-group definitions use an internal custom post type.<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20a%20link%20url%20on%20a%20gallery%20image%3F\"><h3>How do I set a Link URL on a gallery image?<\/h3><\/dt>\n<dd><p>Open the Gallery field \u2192 <strong>Edit<\/strong> on a thumbnail \u2192 in Attachment Details set optional <strong>Link URL<\/strong> and <strong>Link Target<\/strong>. Values appear in Image Array as <code>external_url<\/code> and <code>target<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20limit%20how%20many%20items%20a%20relationship%20or%20taxonomy%20field%20allows%3F\"><h3>Can I limit how many items a Relationship or Taxonomy field allows?<\/h3><\/dt>\n<dd><p>Yes. Enable <strong>Allow Multiple<\/strong>, then set optional <strong>Minimum Selections<\/strong> and <strong>Maximum Selections<\/strong> (0 = no limit).<\/p><\/dd>\n<dt id=\"can%20i%20move%20field%20groups%20between%20sites%3F\"><h3>Can I move field groups between sites?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>Tools \u2192 Export<\/strong> and <strong>Import<\/strong> for JSON field-group definitions (and related Post Types \/ Taxonomies \/ Site Sections when present).<\/p><\/dd>\n<dt id=\"is%20there%20a%20rest%20api%3F\"><h3>Is there a REST API?<\/h3><\/dt>\n<dd><p>Yes, optional. Enable under <strong>Field Builders \u2192 Settings<\/strong>. Endpoints require authenticated users with the right capabilities.<\/p><\/dd>\n<dt id=\"does%20this%20phone%20home%3F\"><h3>Does this phone home?<\/h3><\/dt>\n<dd><p>No.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20qtranslate-x%3F\"><h3>Does it work with qTranslate-X?<\/h3><\/dt>\n<dd><p>Yes. With <strong>qTranslate-X<\/strong> or <strong>qTranslate-XT<\/strong>, text-like fields (including <strong>Markdown<\/strong> and <strong>Address<\/strong> sub-fields) use Language Switching Buttons. Helpers return the active language on the front end \u2014 including Bricks and Elementor dynamic tag output via <code>massoftind_fb_format_value<\/code>.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20yoast%20seo%2C%20rank%20math%2C%20wp%20all%20import%20%2F%20export%3F\"><h3>Does it work with Yoast SEO, Rank Math, WP All Import \/ Export?<\/h3><\/dt>\n<dd><p>Yes, when those plugins are active (SEO variables, sitemap exclusions, import\/export field exposure).<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wpml%20%2F%20woocommerce%20multilingual%3F\"><h3>Does it work with WPML \/ WooCommerce Multilingual?<\/h3><\/dt>\n<dd><p>Yes. Fields register for translate\/copy; WCML product translation UI is supported. Override under WPML \u2192 Settings \u2192 Custom Fields Translation.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20bricks%20builder%20and%20acf%20pro%3F\"><h3>Does it work with Bricks Builder and ACF Pro?<\/h3><\/dt>\n<dd><p>Yes. Bricks Dynamic Data shows a <strong>Massoftind Custom Fields &amp; Field Builder<\/strong> group with <code>{mfb_field_name}<\/code> tags for all <strong>54 field types<\/strong> \u2014 including Table, Phone, Country, Address, Tags, Markdown, and Image Hotspot (readable text or image output). While ACF Pro is active, Bricks\u2019 <code>{acf_\u2026}<\/code> tags stay native to ACF. After you deactivate ACF and import field JSON into Massoftind, enable <strong>Settings \u2192 Bricks ACF tag alias<\/strong> (default on) so the same <code>{acf_\u2026}<\/code> tags and ACF repeater loops keep working through Massoftind \u2014 no Bricks template or core edits. For repeaters you can also use Query Loop type <strong>Massoftind Repeater<\/strong> and <code>{mfb_row:sub_field}<\/code>.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%3F\"><h3>Does it work with Elementor?<\/h3><\/dt>\n<dd><p>Yes. With Elementor active, Dynamic Tags include a <strong>Massoftind Custom Fields &amp; Field Builder<\/strong> group (text, image, URL, gallery, color, number) with all <strong>54 field types<\/strong> in the picker \u2014 including Table, Phone, Country, Address, Date Range, Slug, Tags, Markdown, Post Types, Icon Picker, and Nav Menu. Image Hotspot works in Image\/URL tags. Bind Heading, Image, Button, and Gallery widgets to your fields \u2014 including Site Sections \/ Options. Keep field names when migrating from ACF; use the Massoftind tags for a reliable CMS workflow (Elementor Pro\u2019s ACF tags remain best-effort via the optional ACF shim).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.9.197<\/h4>\n\n<ul>\n<li>Fix: Table field \u2014 adding columns before rows no longer breaks \u201cAdd row\u201d (new rows match header column count).<\/li>\n<li>Compat: Elementor repeater row tags format sub-fields like massoftind_fb_sub_field() (Image URL return format, qTranslate, etc.).<\/li>\n<\/ul>\n\n<h4>1.9.196<\/h4>\n\n<ul>\n<li>Fix: Repeater \/ accordion sub-fields respect Image Return Format (Image URL) in massoftind_fb_sub_field() and developer code examples.<\/li>\n<\/ul>\n\n<h4>1.9.195<\/h4>\n\n<ul>\n<li>Fix: Image field Return Format \u201cImage URL\u201d now returns the attachment URL from massoftind_fb_get() \/ get_field().<\/li>\n<\/ul>\n\n<h4>1.9.194<\/h4>\n\n<ul>\n<li>New: Table, Phone, Country, Address, Date Range, Slug, Tags, Image Hotspot, Markdown, and Post Types field types (54 total).<\/li>\n<li>Improve: ACF migration imports matching addon field slugs (table, phone_number, country_selector, tags_input, etc.) as native types.<\/li>\n<li>Compat: Bricks, Elementor, WPML, and qTranslate support for all new field types \u2014 readable Bricks\/Elementor output, WPML JSON registration for structured fields, qTranslate LSB for Markdown and Address inputs.<\/li>\n<\/ul>\n\n<h4>1.9.193<\/h4>\n\n<ul>\n<li>New: Icon Picker, oEmbed, Separator, and Nav Menu field types.<\/li>\n<li>Improve: ACF migration now imports icon_picker and oembed as native types instead of downgrading.<\/li>\n<\/ul>\n\n<h4>1.9.192<\/h4>\n\n<ul>\n<li>Remove: Frontend forms feature \u2014 <code>[massoftind_fb_form]<\/code> shortcode, <code>massoftind-fb\/form<\/code> block, and related Settings toggles.<\/li>\n<\/ul>\n\n<h4>1.9.191<\/h4>\n\n<ul>\n<li>Fix: readme short description within WordPress.org 150-character limit.<\/li>\n<\/ul>\n\n<h4>1.9.190<\/h4>\n\n<ul>\n<li>UI: Clearer admin sidebar labels (All Field Groups, Global Options, Gutenberg Blocks, Admin Table Columns, Sort Content Order, Export Field Groups, Import from ACF).<\/li>\n<li>Docs: WordPress.org readme SEO \u2014 improved short description, ACF migration &amp; Gutenberg sections, new FAQ entries, tag update (acf migration).<\/li>\n<\/ul>\n\n<h4>1.9.189<\/h4>\n\n<ul>\n<li>Rename: Display name is now Massoftind Custom Fields &amp; Field Builder (slug and URLs unchanged).<\/li>\n<li>Fix: Plugin Check sanitization for block field AJAX POST inputs.<\/li>\n<\/ul>\n\n<h4>1.9.188<\/h4>\n\n<ul>\n<li>New: Gutenberg Block Bindings (<code>massoftind-fb\/field<\/code>) \u2014 bind core blocks to MFB field values.<\/li>\n<li>New: \"Massoftind Field Group\" Gutenberg block with modal field editing (WYSIWYG, media, conditional logic).<\/li>\n<li>New: Custom Blocks registry \u2014 create named Gutenberg blocks from admin, attach field groups via Block location rules.<\/li>\n<li>New: Migrate from ACF tool \u2014 import real ACF field groups with a skipped\/downgraded field report.<\/li>\n<li>Fix: Custom blocks no longer render unrelated field groups (strict block location matching).<\/li>\n<li>Security: REST public endpoint no longer leaks WP_User\/WP_Post\/WP_Term object internals; AJAX post search respects read_post capability.<\/li>\n<\/ul>\n\n<h4>1.9.187<\/h4>\n\n<ul>\n<li>Fix: Plugin Check compliance \u2014 removed phpunit.xml.dist from the release package (dev-only file), replaced unlink() with wp_delete_file() in the SVG upload sanitizer, and renamed internal helper functions to use the full massoftind_fb_ prefix (no leading underscore) per WordPress naming conventions.<\/li>\n<\/ul>\n\n<h4>1.9.186<\/h4>\n\n<ul>\n<li>Security: REST public field-values endpoint now fails closed (returns nothing, not everything) when the field allowlist is empty; Password fields are never exposed through it.<\/li>\n<li>Security: Field group builder\/dev-code JSON bootstrap hardened against stored XSS via crafted choice labels (JSON_HEX escaping + tag stripping on save).<\/li>\n<li>Security: Hidden Login \"block other logins\" now verifies a real nonce instead of a guessable static marker.<\/li>\n<li>Security: SVG uploads are sanitized on disk at upload time (not just when inlined), with a stronger sanitizer covering more script\/handler\/URI vectors.<\/li>\n<li>Security: Frontend form submissions restricted to public, registered post types; Local JSON directory setting confined under wp-content; list view column headers escaped on output; direct-access guards added to remaining stub files.<\/li>\n<\/ul>\n\n<h4>1.9.185<\/h4>\n\n<ul>\n<li>Fix: Fallback value service missing have_option_rows and related template-compat methods; stop permanently caching fallback before plugin bootstrap completes.<\/li>\n<\/ul>\n\n<h4>1.9.184<\/h4>\n\n<ul>\n<li>Fix: Parse error in must-use safety loader (duplicate &lt;?php tag in generated MU plugin file).<\/li>\n<\/ul>\n\n<h4>1.9.183<\/h4>\n\n<ul>\n<li>Fix: Term Description WYSIWYG scoped to add\/edit forms (no editor UI in taxonomy list table).<\/li>\n<li>Fix: massoftind_fb_* helper stubs and must-use safety loader during plugin updates.<\/li>\n<\/ul>\n\n<h4>1.9.182<\/h4>\n\n<ul>\n<li>Fix: Critical error on 1.9.181 \u2014 restore TermDescriptionEditor and term description editor script.<\/li>\n<\/ul>\n\n<h4>1.9.181<\/h4>\n\n<ul>\n<li>Fix: Site Section link fields \u2014 removing a link persists after save (legacy option purge; empty URL clears qTranslate title leftovers).<\/li>\n<li>New: Taxonomy term Description \u2014 WYSIWYG editor on all term add\/edit screens; post-style HTML allowed.<\/li>\n<\/ul>\n\n<h4>1.9.180<\/h4>\n\n<ul>\n<li>UI: Relationship field \u2014 infinite scroll in Available list (auto-loads next page on scroll; fills viewport when the first page is short).<\/li>\n<\/ul>\n\n<h4>1.9.179<\/h4>\n\n<ul>\n<li>New: File field \u2014 image MIME types (jpg, jpeg, png, gif, webp, avif, svg) in Allowed File Types; front-end accepts images when configured (ACF parity).<\/li>\n<li>UI: Repeater\/Group Row layout \u2014 CSS grid columns; Relationship and WYSIWYG span full row; link URL overflow and quicktags fixes in row\/table layouts.<\/li>\n<li>Fix: Relationship search \u2014 paginated results with Load more (50\/page, filterable max 100); no longer capped at ~20 items.<\/li>\n<li>Fix: Plugin Check \u2014 Local JSON uses WP_Filesystem; frontend form flash args sanitized; VIP-safe relationship exclusion.<\/li>\n<\/ul>\n\n<h4>1.9.178<\/h4>\n\n<ul>\n<li>Compat: Elementor row tags run through massoftind_fb_format_value (qTranslate parity with Bricks); WPML registers seamless\/prefixed Clone names; frontend forms disconnect WPML duplicates before save. Bricks \/ qTranslate cores untouched.<\/li>\n<li>New: WPGraphQL \u2014 massoftindField \/ massoftindFields on GraphQL post types + RootQuery (Settings toggle).<\/li>\n<li>New: Local JSON CI \u2014 WP-CLI <code>wp mfb local-json status|push|pull [--force]<\/code>; Tools documents deploy sync.<\/li>\n<li>UI: Conditional logic \u2014 starts_with \/ ends_with \/ &gt;= \/ &lt;=, AND separators, live rule summary.<\/li>\n<li>New: Relationship \u2014 Term mode (<strong>term<\/strong>), meta key\/value\/compare filters, bidirectional for users and terms; min selection blocks publish.<\/li>\n<li>New: Elementor Pro Loop Grid \u2014 Query ID mfb_repeater; row tags use active loop index.<\/li>\n<li>New: Frontend forms \u2014 shortcode [massoftind_fb_form] and block massoftind-fb\/form (Settings \u2192 Frontend forms \/ Guest).<\/li>\n<li>New: Stronger Clone \u2014 seamless vs group, prefix names, field picker; seamless splices at match time.<\/li>\n<li>New: CPT editor \u2014 custom post statuses (slug|Label); PHPUnit smoke suite (composer test).<\/li>\n<li>New: Local field groups API + Local JSON push\/pull; Relationship Bidirectional (same-language posts); Button Group and Page Link fields; massoftind_fb_meta_query(); optional public REST field-values (default off).<\/li>\n<li>New: Elementor Free Repeater Row tags + Layout Blocks in picker; nested path resolve; Row URL \/ Row Number tags.<\/li>\n<li>Fix: REST field-values raw edit-safe reads + optional ?lang= for WPML; option-values and term-values REST endpoints.<\/li>\n<li>New: CPT capability_type \/ map_meta_cap, Labels, attach Taxonomies; List View switcher; Export site package; Developer Panel Bricks\/Elementor snippets.<\/li>\n<li>Fix: Featured list filter skip when List View owns table; Author filter user dropdown; Taxonomy Filter only (hide column).<\/li>\n<\/ul>\n\n<h4>1.9.177<\/h4>\n\n<ul>\n<li>New: Taxonomies \u2192 Show as list filter \u2014 term dropdown on the post list toolbar (same row as dates \/ Filter). Auto-wires into active List Views; fallback filter when no List View. Filterable \u2260 Sortable clarified in List View editor.<\/li>\n<\/ul>\n\n<h4>1.9.176<\/h4>\n\n<ul>\n<li>Fix: Uninstall keeps field groups, settings, Site Sections, List Views, and field\/option values so delete \u2192 reinstall restores previous data. Only regenerable caches are cleared.<\/li>\n<\/ul>\n\n<h4>1.9.175<\/h4>\n\n<ul>\n<li>UI: Tools \u2192 Content Sync shows a clear \u201cSync complete\u201d success panel, toast, and \u201cSync again\u201d button when batched sync finishes.<\/li>\n<\/ul>\n\n<h4>1.9.174<\/h4>\n\n<ul>\n<li>New: Settings \u2192 Featured Posts \u2014 star toggle on list tables, edit metabox, list filter \/ Featured view, optional radio or max-count limits. Integrates with List Views; WPML Copy sync for featured meta.<\/li>\n<li>New: Settings \u2192 Hidden Login \u2014 custom login slug, hide wp-admin for guests, optional block of administrator sign-in on other forms.<\/li>\n<li>Fix: Group\/Repeater collapse when Layout is Table or Row; PHPCS sanitization\/escaping for Featured Posts, Hidden Login, and Featured Image admin CSS.<\/li>\n<li>UI: Plain-language Settings copy (General, Filters &amp; Hooks, Field Usage Guide); Usage Guide shows field name + description (no category pills); Settings tabs stay on one row.<\/li>\n<\/ul>\n\n<h4>1.9.173<\/h4>\n\n<ul>\n<li>Fix: WPML Copy on Site Section fields now mirrors values across languages (options are stored per-language; Copy previously only applied to post meta). Explicit Copy once seeds empty language keys from the default language. Edit the default language to change shared Copy fields. Type-default copy-once does not auto-seed (keeps qTranslate \/ prior independent option behaviour). Bricks, Elementor, and Content Order untouched.<\/li>\n<\/ul>\n\n<h4>1.9.172<\/h4>\n\n<ul>\n<li>Fix: WPML \u201cDon\u2019t translate\u201d on fields did not persist \u2014 save synced every radio and unchecked options cleared the value, so the UI fell back to Copy once.<\/li>\n<\/ul>\n\n<h4>1.9.171<\/h4>\n\n<ul>\n<li>New: Repeater and Group fields include a Layout setting (Block \/ Table \/ Row) so each section can change how sub fields appear in the editor only \u2014 front-end templates, Bricks, Elementor, WPML, and qTranslate are unchanged.<\/li>\n<\/ul>\n\n<h4>1.9.170<\/h4>\n\n<ul>\n<li>Compat: Content Order front-end menu_order hardened for Bricks\/Elementor (respect explicit orderby), WPML (no term\/product query changes), qTranslate untouched; opt-out via massoftind_fb_skip_content_order.<\/li>\n<\/ul>\n\n<h4>1.9.169<\/h4>\n\n<ul>\n<li>Fix: Content Order applies <code>menu_order<\/code> on the front end for enabled post types (Custom Post Order parity) so theme <code>WP_Query<\/code> loops no longer need a manual <code>orderby<\/code>. WooCommerce product queries stay untouched; term ordering remains admin-only (WPML-safe).<\/li>\n<\/ul>\n\n<h4>1.9.168<\/h4>\n\n<ul>\n<li>Fix: Developer Panel snippets for Site Section\u2013only groups now use <code>massoftind_fb_get( 'field', 'option' )<\/code> (and matching <code>get_field<\/code> \/ <code>massoftind_fb_field<\/code>) instead of post-context getters.<\/li>\n<\/ul>\n\n<h4>1.9.167<\/h4>\n\n<ul>\n<li>Fix: Featured Image selection did not stick after Set\/Update \u2014 core writes preview + <code>_thumbnail_id<\/code> only into <code>#postimagediv<\/code>; our stable metabox now receives the same HTML so the thumbnail saves and shows.<\/li>\n<\/ul>\n\n<h4>1.9.166<\/h4>\n\n<ul>\n<li>Fix: Featured Image preview matched default WP look \u2014 our metabox id was missing core <code>#postimagediv<\/code> image max-width styles (full-width photo); constrain thumbnail to 266px sidebar size and show box header + Remove link like core.<\/li>\n<\/ul>\n\n<h4>1.9.165<\/h4>\n\n<ul>\n<li>Fix: Featured Image missing again after 1.9.164 \u2014 use stable metabox id (removers target core postimagediv), keep modern Set featured image modal via media-editor bind, DOM fallback injects the box into the sidebar if stripped.<\/li>\n<\/ul>\n\n<h4>1.9.164<\/h4>\n\n<ul>\n<li>Fix: Featured Image opened the old thickbox uploader instead of the modern \u201cSet featured image\u201d modal \u2014 metabox id must be <code>postimagediv<\/code> for media-editor.js; enqueue media-editor and bind the modern frame.<\/li>\n<\/ul>\n\n<h4>1.9.163<\/h4>\n\n<ul>\n<li>Fix: Featured Image missing on CPT edit screens only when Field Builder is active \u2014 after-title paint no longer triggers WP <code>already_sorted<\/code> (which dropped side boxes); register Featured Image under our own metabox id so <code>postimagediv<\/code> removers cannot wipe it.<\/li>\n<\/ul>\n\n<h4>1.9.162<\/h4>\n\n<ul>\n<li>Fix: Featured Image still missing on CPT UI screens after 1.9.161 \u2014 normalize WP_Screen args, force global theme post-thumbnails, re-add metabox on admin_head, block-editor-compatible box, print CSS directly.<\/li>\n<\/ul>\n\n<h4>1.9.161<\/h4>\n\n<ul>\n<li>Fix: Featured Image still missing after 1.9.160 \u2014 re-add on <code>do_meta_boxes<\/code> (when other plugins remove it), force for all custom show_ui post types, place box at high priority near Publish.<\/li>\n<\/ul>\n\n<h4>1.9.160<\/h4>\n\n<ul>\n<li>Fix: Featured Image forced for all CPT UI post types (e.g. Image Galleries) \u2014 restores thumbnail support, theme post-thumbnails, re-adds metabox at late priority, and unhides postimagediv from Screen Options hidden list.<\/li>\n<\/ul>\n\n<h4>1.9.159<\/h4>\n\n<ul>\n<li>Fix: Taxonomy Add form \u2014 Category Image (and other Field Builder media fields) now clear after AJAX \u201cAdd new category\u201d (WordPress only cleared visible inputs).<\/li>\n<li>New: Taxonomy list table shows Image field thumbnails (e.g. Category Image column).<\/li>\n<\/ul>\n\n<h4>1.9.158<\/h4>\n\n<ul>\n<li>Fix: Featured Image on CPT UI post types (e.g. Image Galleries) when Field Builder registered the CPT first without thumbnail \u2014 restore CPT UI Featured Image support, theme post-thumbnails, and force the classic editor metabox.<\/li>\n<\/ul>\n\n<h4>1.9.157<\/h4>\n\n<ul>\n<li>Fix: Featured Image on CPT UI and other external post types \u2014 Set featured image metabox and button now work when Field Builder field groups are attached (not only for post types registered inside Field Builder).<\/li>\n<\/ul>\n\n<h4>1.9.156<\/h4>\n\n<ul>\n<li>Fix: Gallery Logos UI \u2014 overlapping thumbs \/ stacked Edit\u00d7 icons after reorder (jQuery UI Sortable + flex; also broken when gallery sits in a hidden meta tab).<\/li>\n<li>Fix: Gallery uses float layout, clears leftover absolute positioning, refreshes on meta-tab switch.<\/li>\n<li>Compat: Admin UI only \u2014 Bricks, Elementor, WPML, and qTranslate value\/rendering paths unchanged.<\/li>\n<\/ul>\n\n<h4>1.9.155<\/h4>\n\n<ul>\n<li>Fix: Gallery field \u2014 reordering images no longer leaves duplicate Edit\/Remove icons; improved drag helper\/placeholder.<\/li>\n<li>New: Repeater rows are drag-sortable via a grip handle (order saved on publish).<\/li>\n<li>Fix: Content Order \u2014 correct pagination offset when saving, more reliable sortable init, Quick Edit re-bind.<\/li>\n<li>Compat: Bricks, Elementor, WPML, and qTranslate paths unchanged.<\/li>\n<\/ul>\n\n<h4>1.9.154<\/h4>\n\n<ul>\n<li>Fix: <code>get_field( $name, get_queried_object() )<\/code> \/ <code>massoftind_fb_get()<\/code> accept <code>WP_Term<\/code> objects (ACF parity) so taxonomy term banners and term meta render on archives.<\/li>\n<li>Compat: Bricks, Elementor, WPML, and qTranslate paths unchanged \u2014 term values still run through <code>massoftind_fb_format_value<\/code>.<\/li>\n<\/ul>\n\n<h4>1.9.153<\/h4>\n\n<ul>\n<li>Fix: Menu SVG icons \u2014 convert theme <code>&lt;img class=\"menu_svg_image\" src=\"\u2026.svg\"&gt;<\/code> to sanitized inline <code>&lt;svg&gt;<\/code> on the front end (no theme edit). Works even when Allow SVG Uploads is off.<\/li>\n<li>Note: Allow SVG Uploads remains upload-only. Front-end menu inlining is separate.<\/li>\n<\/ul>\n\n<h4>1.9.152<\/h4>\n\n<ul>\n<li>Fix: <code>get_field( $name, $item )<\/code> \/ <code>massoftind_fb_get()<\/code> accept menu item objects (ACF parity) so Appearance \u2192 Menus fields like Menu SVG resolve on the front end.<\/li>\n<li>Fix: Template-compat post ID normalizer extracts <code>-&gt;ID<\/code> from objects instead of falling back to the current page.<\/li>\n<li>Fix: Image fields on <code>nav_menu_item<\/code> return a URL string (unless Return Format is Image Array) so existing <code>&lt;img src=\"' . $icon . '\"&gt;<\/code> theme filters work without edits.<\/li>\n<\/ul>\n\n<h4>1.9.151<\/h4>\n\n<ul>\n<li>New: <strong>Elementor Dynamic Tags<\/strong> \u2014 Massoftind Field \/ Image \/ URL \/ Gallery \/ Color \/ Number group for CMS page building without ACF.<\/li>\n<li>New: Settings \u2192 <strong>Elementor Dynamic Tags<\/strong> (on by default); source Current post\/term or Site Sections \/ Options.<\/li>\n<li>Compat: Bricks, WPML, and qTranslate paths unchanged.<\/li>\n<\/ul>\n\n<h4>1.9.150<\/h4>\n\n<ul>\n<li>New: Location rule <strong>Menu Item<\/strong> (<code>nav_menu<\/code>) \u2014 attach fields to Appearance \u2192 Menus items (ACF-compatible, e.g. Menu SVG).<\/li>\n<li>New: ACF import maps <code>nav_menu<\/code> \/ <code>menu_item<\/code> \/ <code>nav_menu_item<\/code> location rules; values save as <code>nav_menu_item<\/code> post meta for <code>get_field( $name, $item_id )<\/code> (Elementor Pro, Bricks, themes).<\/li>\n<li>Compat: WPML menu-item duplicates disconnect on save; qTranslate still formats via existing <code>massoftind_fb_format_value<\/code> on get.<\/li>\n<\/ul>\n\n<h4>1.9.149<\/h4>\n\n<ul>\n<li>Fix: Bricks loop <code>get_field()<\/code> values run through <code>massoftind_fb_format_value<\/code> again (qTranslate <code>[:lang]<\/code> decode).<\/li>\n<li>Fix: Stale Massoftind repeater context clears when Bricks starts a non-MFB query; container-root gating still blocks Our Story\u2013style tag theft.<\/li>\n<li>Fix: Bricks text\/link dynamic data applies the same format filter before shortcodes.<\/li>\n<\/ul>\n\n<h4>1.9.148<\/h4>\n\n<ul>\n<li>Fix: Nested <code>have_rows( 'group_field' )<\/code> inside a repeater\/group (e.g. <code>video_section<\/code> in <code>banner_section<\/code>) no longer drops associative group values \u2014 hero video loops work again.<\/li>\n<\/ul>\n\n<h4>1.9.147<\/h4>\n\n<ul>\n<li>Fix: Bricks repeater loop tags like <code>{acf_item_repeater_item_heading}<\/code> render again (Mission \/ Why Live Local empty boxes).<\/li>\n<li>Fix: Loop-row resolution matches the active repeater path (not a shorter FieldCatalog root), and settings no longer wipe loop tags before the loop runs.<\/li>\n<li>Fix: <code>get_field()<\/code> reads the active Bricks Massoftind loop row so Bricks' native ACF provider gets sub-field values.<\/li>\n<\/ul>\n\n<h4>1.9.146<\/h4>\n\n<ul>\n<li>Fix: <code>get_sub_field()<\/code> keeps numeric attachment IDs (instead of converting them to arrays) when the sub-field definition is missing, so <code>wp_get_attachment_image()<\/code> works with Image ID return format.<\/li>\n<li>Fix: Stronger repeater parent lookup when resolving nested image\/file sub-fields.<\/li>\n<li>New: <code>massoftind_fb_attachment_image()<\/code> \/ <code>massoftind_fb_get_attachment_image()<\/code> helpers that render SVGs and other attachments that <code>wp_get_attachment_image()<\/code> skips.<\/li>\n<\/ul>\n\n<h4>1.9.145<\/h4>\n\n<ul>\n<li>Fix: Bricks query loops no longer leave stale row context that steals later <code>{mfb_*}<\/code> \/ group field tags (e.g. Our Story after Mission\/Vision).<\/li>\n<li>Fix: ACF Star Rating Field import type <code>star_rating_field<\/code> maps to native Star Rating so admin no longer shows \"This field type is not available.\"<\/li>\n<li>Fix: Bricks dynamic data for <code>star_rating<\/code> fields outputs star HTML instead of a bare number.<\/li>\n<\/ul>\n\n<h4>1.9.144<\/h4>\n\n<ul>\n<li>Fix: WordPress shortcodes in Text\/Textarea fields (e.g. <code>[current_year]<\/code>) run through <code>do_shortcode()<\/code> when rendered in Bricks dynamic data and via <code>massoftind_fb_get()<\/code>.<\/li>\n<\/ul>\n\n<h4>1.9.143<\/h4>\n\n<ul>\n<li>Fix: Bricks homepage\/catalog sections empty when fields are on the front page but values live in Site Sections or legacy ACF Options keys \u2014 option fallback no longer blocked by front-page location rules.<\/li>\n<li>Fix: Resolve <code>{acf_*}<\/code> in Bricks Heading\/Text\/Link element settings before render (catalog + service sections).<\/li>\n<li>Fix: WPML-safe \u2014 post-only fields still never fall back to globals; legacy ACF option keys are detected before blocking.<\/li>\n<\/ul>\n\n<h4>1.9.142<\/h4>\n\n<ul>\n<li>Fix: Bricks <code>{acf_*}<\/code> Site Section \/ global fields resolve when called without <code>:option<\/code> \u2014 <code>get_field()<\/code> and <code>get_field_object()<\/code> now fall back to wp_options (footer, homepage sections, contact info).<\/li>\n<li>Fix: Nested group sub-fields and underscore paths (<code>footer_connect_section_heading<\/code>) read from Site Section option storage.<\/li>\n<li>Fix: Option fallback is gated to Site Section fields only \u2014 post-assigned fields with empty meta stay empty (WPML per-translation). qTranslate still decodes via existing <code>massoftind_fb_format_value<\/code> on options.<\/li>\n<\/ul>\n\n<h4>1.9.141<\/h4>\n\n<ul>\n<li>Fix: Bricks Logo\/Image fatal (<code>preg_split(): array given<\/code>) \u2014 remove early <code>render_tag<\/code> hook at priority 5 that returned image arrays before Bricks' ACF provider runs.<\/li>\n<li>Fix: Resolve dynamic logo image fields via <code>filter_element_settings<\/code> on the Logo element.<\/li>\n<\/ul>\n\n<h4>1.9.140<\/h4>\n\n<ul>\n<li>Fix: Bricks <code>{acf_*}<\/code> dynamic tags render again \u2014 keep Bricks' native ACF provider and resolve tags early via BricksSupport (1.9.139 had disabled the provider, leaving raw <code>{ACF_\u2026}<\/code> in templates).<\/li>\n<li>Fix: Site Section \/ options fields (footer globals) resolve by full field path, not only the first underscore segment.<\/li>\n<\/ul>\n\n<p>For earlier releases, see the <code>changelog.txt<\/code> file bundled with the plugin.<\/p>","raw_excerpt":"Custom fields &amp; field builder for WordPress \u2014 metabox UI, repeaters, ACF migration, Gutenberg bindings, Bricks\/Elementor, WPML, conditional logic.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343562"}],"author":[{"embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/masssoftware"}],"wp:attachment":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343562"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343562"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343562"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343562"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343562"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}