Codeideal Open Fields lets you add custom fields to posts, pages, custom post types, taxonomies, and users. The admin interface is built with React and TypeScript — fast, responsive, and intuitive.
All features are free. No premium tier. No locked functionality.
Quick Start
get_field( 'my_field' ) — retrieve any field value.
the_field( 'my_field' ) — echo a field value directly.
Template Examples
Simple field:
<?php echo esc_html( get_field( 'subtitle' ) ); ?>
Repeater loop:
<?php while ( have_rows( 'team_members' ) ) : the_row(); ?>
<h3><?php the_sub_field( 'name' ); ?></h3>
<p><?php the_sub_field( 'role' ); ?></p>
<?php endwhile; ?>
User field (with prefix):
<?php echo esc_html( get_field( 'company', 'user_' . $user_id ) ); ?>
Full API reference and guides: openfields.codeideal.com/docs
ACF-Compatible API
If you know ACF, you already know Open Fields. The template API uses the same function names:
get_field()/the_field()get_fields()/update_field()/delete_field()have_rows()/the_row()/get_sub_field()/the_sub_field()get_row()/get_rows()/reset_rows()/get_row_index()get_field_object()/get_sub_field_object()
When ACF is also active, these wrappers are not loaded — no conflicts. Both plugins store data as standard WordPress meta, so they can coexist.
Every function also has a prefixed version (e.g. cofld_get_field()) that is always available regardless of other plugins.
Field Types
- Basic: Text, Textarea, Number, Email, URL, Password
- Choice: Select, Checkbox, Radio, Switch
- Date & Time: Date, Time, DateTime, Color Picker
- Media: Image, File, Gallery
- Content: WYSIWYG Editor, Link
- Relational: Post Object, Taxonomy, User
- Layout: Repeater, Group
Location Rules
Assign field groups to:
- Post types (including custom post types)
- Page templates
- Post status / format / category
- Taxonomy terms
- User roles
Source Code
The admin JS and CSS are compiled from TypeScript/React source. All other files are uncompressed.
- Source repo: github.com/novincode/openfields
- Admin source: admin/src/
- Build:
pnpm install && pnpm build(Vite + TypeScript)