{"id":314484,"date":"2026-06-23T06:42:18","date_gmt":"2026-06-23T06:42:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fieldforge\/"},"modified":"2026-06-23T09:55:52","modified_gmt":"2026-06-23T09:55:52","slug":"fieldom","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/fieldom\/","author":23488596,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.3","stable_tag":"0.1.3","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Fieldom","header_author":"arunrajiah","header_description":"Open-source custom fields plugin with 26 field types, native Repeater, Flexible Content, Options Pages, conditional logic, and JSON sync.","assets_banners_color":"4988bd","last_updated":"2026-06-23 09:55:52","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/github.com\/sponsors\/arunrajiah","header_plugin_uri":"https:\/\/github.com\/arunrajiah\/fieldforge","header_author_uri":"https:\/\/github.com\/arunrajiah","rating":0,"author_block_rating":0,"active_installs":0,"downloads":38,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"arunrajiah","date":"2026-06-23 06:41:57"},"0.1.2":{"tag":"0.1.2","author":"arunrajiah","date":"2026-06-23 06:49:14"},"0.1.3":{"tag":"0.1.3","author":"arunrajiah","date":"2026-06-23 09:55:52"}},"upgrade_notice":{"0.1.0":"<p>Initial release \u2014 no upgrade path needed.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3583003,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3583003,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3583003,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3583003,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3583003,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3583003,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.1","0.1.2","0.1.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3583355,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3583355,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3583355,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3583355,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3583355,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3583355,"resolution":"6","location":"assets","locale":"","width":1440,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3583355,"resolution":"7","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"<strong>Field Group Editor \u2014 fields overview.<\/strong> Six fields in the \"Article Details\" group, each row showing a colour-coded type icon, field name slug, and category badge (Text, Textarea, Number, True\/False, Image, Post Object). Drag handles let you reorder by dragging. Action icons on the right duplicate, expand, or delete a field.","2":"<strong>Field Group Editor \u2014 field expanded.<\/strong> The \"Subtitle\" Text field is open, showing the two-column settings grid: label, slug, type picker, instructions, required toggle, default value, and placeholder.","3":"<strong>Field Group Editor \u2014 empty state.<\/strong> A fresh group before any fields are added \u2014 dashed placeholder card prompts you to click + Add Field.","4":"<strong>Field Groups list.<\/strong> The standard WordPress list table showing all published field groups at a glance.","5":"<strong>Post edit screen \u2014 custom meta box.<\/strong> Fieldom renders its fields as a standard WordPress meta box on the post editor, respecting location rules.","6":"<strong>Import \/ Export page.<\/strong> Paste any JSON field-group export and click Import to bring fields across from any site.","7":"<strong>Settings page.<\/strong> Configure local JSON sync paths, enable debug logging, and sponsor the project \u2014 all in one place."}},"plugin_section":[],"plugin_tags":[2010,249083,2238,1264,2244],"plugin_category":[],"plugin_contributors":[263180],"plugin_business_model":[],"class_list":["post-314484","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-fields","plugin_tags-field-groups","plugin_tags-flexible-content","plugin_tags-meta-box","plugin_tags-repeater","plugin_contributors-arunrajiah","plugin_committers-arunrajiah"],"banners":{"banner":"https:\/\/ps.w.org\/fieldom\/assets\/banner-772x250.png?rev=3583003","banner_2x":"https:\/\/ps.w.org\/fieldom\/assets\/banner-1544x500.png?rev=3583003","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/fieldom\/assets\/icon.svg?rev=3583003","icon":"https:\/\/ps.w.org\/fieldom\/assets\/icon.svg?rev=3583003","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/fieldom\/assets\/screenshot-1.png?rev=3583355","caption":"<strong>Field Group Editor \u2014 fields overview.<\/strong> Six fields in the \"Article Details\" group, each row showing a colour-coded type icon, field name slug, and category badge (Text, Textarea, Number, True\/False, Image, Post Object). Drag handles let you reorder by dragging. Action icons on the right duplicate, expand, or delete a field."},{"src":"https:\/\/ps.w.org\/fieldom\/assets\/screenshot-2.png?rev=3583355","caption":"<strong>Field Group Editor \u2014 field expanded.<\/strong> The \"Subtitle\" Text field is open, showing the two-column settings grid: label, slug, type picker, instructions, required toggle, default value, and placeholder."},{"src":"https:\/\/ps.w.org\/fieldom\/assets\/screenshot-3.png?rev=3583355","caption":"<strong>Field Group Editor \u2014 empty state.<\/strong> A fresh group before any fields are added \u2014 dashed placeholder card prompts you to click + Add Field."},{"src":"https:\/\/ps.w.org\/fieldom\/assets\/screenshot-4.png?rev=3583355","caption":"<strong>Field Groups list.<\/strong> The standard WordPress list table showing all published field groups at a glance."},{"src":"https:\/\/ps.w.org\/fieldom\/assets\/screenshot-5.png?rev=3583355","caption":"<strong>Post edit screen \u2014 custom meta box.<\/strong> Fieldom renders its fields as a standard WordPress meta box on the post editor, respecting location rules."},{"src":"https:\/\/ps.w.org\/fieldom\/assets\/screenshot-6.png?rev=3583355","caption":"<strong>Import \/ Export page.<\/strong> Paste any JSON field-group export and click Import to bring fields across from any site."},{"src":"https:\/\/ps.w.org\/fieldom\/assets\/screenshot-7.png?rev=3583355","caption":"<strong>Settings page.<\/strong> Configure local JSON sync paths, enable debug logging, and sponsor the project \u2014 all in one place."}],"raw_content":"<!--section=description-->\n<p><strong>Fieldom<\/strong> gives agencies and developers a community-governed, feature-rich custom fields plugin for WordPress.<\/p>\n\n<p>Every feature is built and maintained in the open. No freemium gates, no SaaS backend, no phone-home. Just a solid custom-fields plugin that runs entirely inside WordPress.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>26 field types<\/strong> \u2014 text, textarea, number, select, checkbox, radio, true\/false, date picker, time picker, color picker, URL, email, password, file, image, gallery, post object, taxonomy, user, link, WYSIWYG, message, tab, accordion, <strong>Repeater<\/strong>, and <strong>Flexible Content<\/strong>.<\/li>\n<li><strong>Native Repeater field<\/strong> \u2014 supports drag-to-reorder rows, configurable sub-fields, and min\/max row limits.<\/li>\n<li><strong>Flexible Content field<\/strong> \u2014 multiple layouts each with their own sub-fields, drag-to-reorder blocks.<\/li>\n<li><strong>Options Pages<\/strong> \u2014 register custom admin pages and store global settings outside of post meta.<\/li>\n<li><strong>JSON import \/ export<\/strong> \u2014 export field groups as JSON and import them on any site. Field types, choices, location rules, Repeater sub-fields, and Flexible Content layouts are all mapped automatically.<\/li>\n<li><strong>Standard postmeta storage<\/strong> \u2014 values are stored in standard <code>wp_postmeta<\/code> using established key conventions, compatible with any plugin that reads WordPress post meta.<\/li>\n<li><strong>Template helpers<\/strong> \u2014 <code>fieldforge_get()<\/code>, <code>fieldforge_the()<\/code>, <code>fieldforge_have_rows()<\/code>, <code>fieldforge_the_row()<\/code>, <code>fieldforge_sub_field()<\/code>, <code>fieldforge_the_sub_field()<\/code>, <code>fieldforge_update_field()<\/code>, <code>fieldforge_get_option()<\/code>, <code>fieldforge_update_option()<\/code>.<\/li>\n<li><strong>Location rules<\/strong> \u2014 show field groups by post type, post status, user role, page parent, or page template. OR groups and AND rules.<\/li>\n<li><strong>Conditional logic<\/strong> \u2014 show or hide individual fields based on the values of other fields.<\/li>\n<li><strong>REST API<\/strong> \u2014 field values exposed via the WordPress REST API with location-rule filtering.<\/li>\n<li><strong>Local JSON sync<\/strong> \u2014 field groups saved as JSON files alongside your theme for version control.<\/li>\n<li><strong>100% GPL, no SaaS<\/strong> \u2014 runs entirely inside WordPress. No external services.<\/li>\n<\/ul>\n\n<h4>Basic Usage<\/h4>\n\n<ol>\n<li>Go to <strong>Fieldom \u2192 Add New<\/strong> to create a field group.<\/li>\n<li>Click <strong>+ Add Field<\/strong>, choose a field type, give it a name and label.<\/li>\n<li>Set a location rule (e.g. \"Post Type is equal to Post\").<\/li>\n<li>Publish the field group.<\/li>\n<li>Edit any matching post \u2014 your fields appear as a meta box.<\/li>\n<\/ol>\n\n<p>In your theme templates:<\/p>\n\n<pre><code>&lt;?php echo esc_html( fieldforge_get( 'subtitle' ) ); ?&gt;\n<\/code><\/pre>\n\n<p>Or simply:<\/p>\n\n<pre><code>&lt;?php fieldforge_the( 'subtitle' ); ?&gt;\n<\/code><\/pre>\n\n<h4>Repeater Usage<\/h4>\n\n<pre><code>&lt;?php while ( fieldforge_have_rows( 'team_members' ) ) : fieldforge_the_row(); ?&gt;\n    &lt;h3&gt;&lt;?php fieldforge_the_sub_field( 'name' ); ?&gt;&lt;\/h3&gt;\n    &lt;p&gt;&lt;?php fieldforge_the_sub_field( 'role' ); ?&gt;&lt;\/p&gt;\n&lt;?php endwhile; ?&gt;\n<\/code><\/pre>\n\n<h4>JSON Import<\/h4>\n\n<p>Go to <strong>Fieldom \u2192 Import \/ Export<\/strong>, paste your field group JSON, and click Import. All supported field types and location rules are mapped automatically.<\/p>\n\n<p>See <code>docs\/json-import.md<\/code> in the plugin folder for the full import guide.<\/p>\n\n<h4>Roadmap<\/h4>\n\n<ul>\n<li>v0.2 \u2014 Gutenberg \/ block editor field meta boxes<\/li>\n<li>v0.3 \u2014 Clone field<\/li>\n<li>v0.4 \u2014 Improved conditional logic UI builder<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>From the WordPress plugin directory<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong> and search for \"Fieldom\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<h4>From a ZIP file<\/h4>\n\n<ol>\n<li>Download the latest <code>fieldom.zip<\/code> from the <a href=\"https:\/\/github.com\/arunrajiah\/fieldforge\/releases\">GitHub Releases page<\/a>.<\/li>\n<li>Go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Upload the zip and click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<h4>From source<\/h4>\n\n<ol>\n<li>Clone the repository into <code>wp-content\/plugins\/fieldom<\/code>.<\/li>\n<li>Run <code>composer install<\/code> to install dev dependencies.<\/li>\n<li>Activate the plugin from <strong>Plugins \u2192 Installed Plugins<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20field%20types%20and%20features%20are%20included%3F\"><h3>What field types and features are included?<\/h3><\/dt>\n<dd><p>Fieldom includes 26 field types (text, textarea, number, email, URL, password, select, checkbox, radio, true\/false, date picker, time picker, color picker, image, file, gallery, post object, taxonomy, user, link, WYSIWYG, message, tab, accordion, Repeater, and Flexible Content), plus Options Pages, conditional logic, a REST API, a JSON importer, and local JSON sync. The Clone field and Gutenberg block fields are on the roadmap.<\/p><\/dd>\n<dt id=\"can%20i%20import%20existing%20field%20group%20configurations%3F\"><h3>Can I import existing field group configurations?<\/h3><\/dt>\n<dd><p>Yes \u2014 go to <strong>Fieldom \u2192 Import \/ Export<\/strong> and paste a field group JSON export. Fieldom maps all supported field types, choices, location rules, sub-fields, and Flexible Content layouts automatically.<\/p><\/dd>\n<dt id=\"is%20it%20safe%20to%20use%20on%20a%20production%20site%3F\"><h3>Is it safe to use on a production site?<\/h3><\/dt>\n<dd><p>v0.1 is an early but stable release. The core save\/load path is covered by a PHPUnit test suite running on PHP 7.4 through 8.3. We recommend testing on a staging site before deploying to production, and watching the <a href=\"https:\/\/github.com\/arunrajiah\/fieldforge\/releases\">GitHub releases<\/a> for patch updates.<\/p><\/dd>\n<dt id=\"how%20do%20i%20display%20field%20values%20in%20my%20theme%20templates%3F\"><h3>How do I display field values in my theme templates?<\/h3><\/dt>\n<dd><p>Use <code>fieldforge_get( 'field_name' )<\/code> to return a value, or <code>fieldforge_the( 'field_name' )<\/code> to echo it safely escaped. For Repeater fields, use the <code>fieldforge_have_rows()<\/code> \/ <code>fieldforge_the_row()<\/code> \/ <code>fieldforge_sub_field()<\/code> loop helpers.<\/p><\/dd>\n<dt id=\"does%20fieldom%20conflict%20with%20other%20custom%20field%20plugins%3F\"><h3>Does Fieldom conflict with other custom field plugins?<\/h3><\/dt>\n<dd><p>Fieldom registers its own function names, CPT slugs, and meta keys and does not interfere with other custom field plugins. You can run multiple custom field plugins simultaneously.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Branding: updated the in-plugin logo and replaced remaining old-name references with \"Fieldom\" across the admin menu, settings page, import\/export screen, admin notices, and REST schema.<\/li>\n<li>Settings: clarified that the local JSON path must be inside the uploads directory.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>First build published to the WordPress.org plugin directory.<\/li>\n<li>Security: local JSON save path is now restricted to the uploads directory.<\/li>\n<li>Security: REST options endpoints enforce each options page's own capability.<\/li>\n<li>Internationalization: all strings use the <code>fieldom<\/code> text domain.<\/li>\n<li>Compatibility: tested up to WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Fixed: sub-fields inside Repeater and Flexible Content rows rendering blank.<\/li>\n<li>Fixed: required True\/False field unsaveable when set to \"No\".<\/li>\n<li>Fixed: message field always rendering empty (key mismatch).<\/li>\n<li>Fixed: Flexible Content missing from field type selector in the group editor.<\/li>\n<li>Fixed: JSON importer not instantiated from plugin bootstrap.<\/li>\n<li>Fixed: Settings page options (local JSON path, debug log) not consumed by subsystems.<\/li>\n<li>Fixed: error_log() firing unconditionally in production.<\/li>\n<li>Fixed: REST API exposing field groups with no location rules.<\/li>\n<li>Fixed: duplicate conditional-logic script emission.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>26 field types: text, textarea, number, email, URL, password, select, checkbox, radio, true\/false, date picker, time picker, color picker, file, image, gallery, post object, taxonomy, user, link, WYSIWYG, message, tab, accordion, Repeater, and Flexible Content.<\/li>\n<li>Flexible Content field with multiple configurable layouts, drag-to-reorder blocks, and min\/max limits.<\/li>\n<li>Options Pages \u2014 register global settings pages outside of post meta.<\/li>\n<li>Repeater field with drag-to-reorder rows and configurable sub-fields.<\/li>\n<li>JSON importer \u2014 maps field types, conditional logic rules, Flexible Content layouts, and Repeater sub-fields.<\/li>\n<li>JSON export and import for field groups.<\/li>\n<li>Template helpers: <code>fieldforge_get()<\/code>, <code>fieldforge_the()<\/code>, <code>fieldforge_have_rows()<\/code>, <code>fieldforge_the_row()<\/code>, <code>fieldforge_sub_field()<\/code>, <code>fieldforge_the_sub_field()<\/code>, <code>fieldforge_update_field()<\/code>, <code>fieldforge_get_option()<\/code>, <code>fieldforge_update_option()<\/code>.<\/li>\n<li>Location rules: post type, post status, user role, page parent, page template, taxonomy, format \u2014 with OR groups and AND rules.<\/li>\n<li>Conditional logic: show\/hide fields based on other field values.<\/li>\n<li>REST API: field values for posts exposed via <code>\/fieldforge\/v1\/fields\/{id}<\/code> with location-rule filtering.<\/li>\n<li>Field validation: number enforces min\/max, email validates format, URL validates format, text enforces maxlength.<\/li>\n<li>Local JSON sync \u2014 field groups saved as JSON files in the theme for version control.<\/li>\n<li>Field Group editor with drag-to-reorder fields, live field name auto-generation, type-specific settings panels, Repeater\/Flexible Content sub-field editors, and dynamic location rule value dropdowns.<\/li>\n<li>PHPUnit test suite covering all field type sanitize\/save\/load cycles and JSON importer logic.<\/li>\n<li>GitHub Actions CI matrix on PHP 7.4, 8.0, 8.1, 8.2, 8.3.<\/li>\n<\/ul>","raw_excerpt":"Open-source custom fields plugin with 26 field types, Repeater, Flexible Content, Options Pages, conditional logic, and JSON sync.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/314484","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=314484"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/arunrajiah"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=314484"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=314484"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=314484"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=314484"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=314484"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=314484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}