Introducing the F2 WordPress plugin. This is a free plugin to use for fields and forms creation in WordPress.
If it were up to us, along with many long-time WordPress developers, we would love to see a fields API baked into WordPress. Instead what we have in WP is the meta system. Post meta, user meta, this meta system enables fast and easy key/pair data storage. Field plugins like ACF (Advanced Custom Fields) then leverage this meta system to store fields. In the case of ACF, those meta fields are setup as a post type called a field group, and each field is also a post. It’s very meta in the sense that the meta post system is used in ACF to both create and provide fields for other post types.
The F2 WordPress plugin is a new way of thinking about fields in WordPress. It’s key foundational idea is that F2 is going to ensure that both fields and forms are equally supported by the plugin. That is the origin of the name F2, which can be thought of as Fx2 or F-squared. Forms are generally sets of fields, so to us it makes sense to have a single plugin that can be equally good as both a form and field plugin. In practice we see some efforts to do this in ACF with it’s support for front-end fields.
And yet the problem is that ACF Pro which has the front-end forms functionality, still lacks inherit support for entry storage and other key facets of form plugins. Most users of ACF Pro still end up installing a completely separately form plugin. Not only is that a second license to pay for in most cases, it’s more code, and it means that your field system and your form system have no relationship with each other.
The meta post storage system from WordPress is a key/pair system. It relies on references in a central post_meta table. These references, especially for complex field types, can get very “circular” and lead to complex joins to fetch the data. The post meta table can also get really big and lead to general slowdown of database queries. For these reasons sites that have a large volume of content are usually not advised to make use of the post meta system.
The problem is there isn’t really much of an alternative. That’s where we hope to make F2 WordPress plugin a useful option. When the volume of content really needs a more optimized storage approach, the F2 WordPress plugin will provide custom database tables with columns that map to your fields as they are setup in the F2 configuration.