35 field types
Text to Relationship, Gallery, Map, Group, Repeater with pagination, Flexible Content and Clone — in a drag-and-drop builder with conditional logic.
Field groups, repeaters, flexible content, options pages and PHP blocks. Compatible with ACF data and template functions. No Pro version — everything is GPL.
Register a field group in your theme or plugin:
add_action( 'wpff/init', function () {
wpff_add_local_field_group( array(
'key' => 'group_book',
'title' => 'Book',
'fields' => array(
array( 'key' => 'field_book_isbn', 'name' => 'isbn', 'label' => 'ISBN', 'type' => 'text', 'required' => 1 ),
array( 'key' => 'field_book_cover', 'name' => 'cover', 'label' => 'Cover', 'type' => 'image', 'return_format' => 'url' ),
),
'location' => array( array( array( 'param' => 'post_type', 'operator' => '==', 'value' => 'post' ) ) ),
) );
} );Then read the values in a template, exactly as with ACF:
echo esc_html( get_field( 'isbn' ) );
printf( '<img src="%s" alt="">', esc_url( get_field( 'cover' ) ) );Requires WordPress 6.5+ and PHP 8.1+. Read the guide →
Not affiliated with ACF or WP Engine
WP Freeform Fields is an independent project, written from scratch, with no ACF code. "Advanced Custom Fields", "ACF" and "ACF PRO" are trademarks of WP Engine, used here only to describe compatibility.