Store your ACF field data in custom database tables usingACF Custom Database TablesStore your Advanced Custom Fields data in custom database tables for faster search queries, structured data, & eas...
Subscribe to connect and install
Store your ACF field data in custom database tables using ACF Custom Database Tables. Store your Advanced Custom Fields data in custom database tables for faster search queries, structured data, & easy exports! Storing ACF fields in custom tables is ideal for anyone using ACF at scale. Buy a Developer License $ 149 USD Buy Now. Unlimited sites30% license renewal discount. Yearly, opt-in billing – cancel anytime1 year of updates + premium support30-day money-back guarantee!
Store ACF field values in custom database tables structured to match your ACF field groups. ACF Custom Database Tables is an ACF extension plugin that makes it possible to store ACF data in organised, structured database tables instead of WordPress' core meta tables. Features. Easily create custom database tables with our simple UI. Store ACF field values in custom table columns.
Control the column data type for more efficient SQL. Bypass core meta tables globally or for specific fields only. Relational fields can form their own tables for SQL join queries. Store repeater field data in normalised, structured tables of their own. BenefitsScalability. More efficient queries means less strain on resources & reduced compute costs.
Portability. Export a whole table with ease. Searchability. Structured data can be searched much faster with simply SQL. Speed. Structured, typed data means less work for database engines & much faster queries. Repeater new! TextTextareaNumberRangeEmailURLPasswordWYSIWYGoEmbedImageFileRadioTrue/False. Color Picker. Date Picker. Time Picker. Date/Time Picker. Button GroupGalleryCheckboxRelationshipGoogle Map. Post Object. Page LinkSelectUserLinkTaxonomyUnsupported fields will be passed through to ACF to be stored as usual in core meta tables.
Search, analyse, export & scale with structured data! Store ACF meta data across clearly structured columns in normalised database tables. Structured data offers more flexibility & speed when writing complex SQL queries; is much easier to visualise & export; and provides a much more efficient foundation for data at scale. You can even disable saving of data to core meta tables and specify column data types for custom database table columns which can drastically reduce the size of a database.
This plugin is a game changer for search powered websites! I’m seriously impressed! Some of our happy customers A nice plugin that turns user posts into usable data. Allowing you to convert ACF meta boxes into their own DB tables enables you to create efficient custom backend systems in Wordpress without the nightmare and performance impact of the built in post meta table.
I've used it to create bespoke event and membership systems really easily. Now you can properly create a DB structure within Wordpress simply and rapidly. ACF is amazing for clients, BUT storing all the information in the same table as ACF does usually make you discard it when you need to create something big. Not anymore! This plugin moves ACF to the next level.
Works best with:Advanced Custom Fields Pro v5.10+Advanced Custom Fields Free v5.10+WordPress 5.8+ & PHP 7.0+ View Changelog / Read Docs. Features we plan to include:Data migration tools. Group field support. Flexible content field support. Query and search helpers Frequently Asked Questions Yes. Custom database tables can be defined for field groups that have a User Form in their location settings. Absolutely.
Whilst the plugin supports the built in types of post and page, it is ideally suited for storing custom post type meta data in structured tables. At this time, only one object mapping is supported per field group, so selecting more than one object (post type, user) at a time will deactivate the custom table definition settings. We are working on support for multiple objects per table.
This should ship with a subsequent 1.x release. For now, if you need the same field group on multiple objects, you’ll need to duplicate the field group and have a custom table for each. The plugin doesn't currently support the taxonomy form location rule, so field groups used in this context cannot be saved to custom database tables at this time. However, the plugin does support the ACF taxonomy field.
The data from this field can be stored either as a serialised JSON string in a single column or it can be configured to create a relational table where each selected term has its own table row. Taxonomy form location rule support is something we are open to adding should there be a demand for it. If you would like to request this feature, please let us know.
The plugin parses all table definition (JSON) files and creates SQL table schema from the contained JSON. It then passes the SQL through WordPress' built-in dbDelta() function, which performs modifications to the database. The plugin also rebuilds the cached table map as part of this process. This is a non-destructive process. It won’t delete columns or tables, but it will modify them where instructed to do so.
You should always take a backup of your database before you run any sort of database schema modification, just to be safe. The table create/update process uses WordPress' internal dbDelta() function to process the table schema. dbDelta() does not currently remove indexes, so you shouldn't lost any custom indexes you have manually created on your table. As of version 1.1, you can now run custom SQL modifiers that set indexes during table modification.
Important: As with anything that manipulates your data, you should take a full backup before running the procedure in case something does go wrong. The table create/update process uses WordPress' internal dbDelta() function to process the table schema. dbDelta() does not currently remove columns, so you shouldn't lost any columns that you have removed from your table definition files. Important: As with anything that manipulates your data, you should take a full backup before running the procedure in case something does go wrong.
If you rename an ACF field, a new column will be added to the database table the next time you run the update process. The plugin won’t know about this change of field name, so you will likely have issues with data retrieval on already saved fields. Any subsequent data updates will be saved to the new column. If you need to do this on a live site, you’ll need to get existing data moved from the original column into the new column.
Yes! You can store repeater data as an encoded payload in a single column or you can create normalised tables that match the structure of your repeater field making the data highly accessible and flexible for SQL queries. Learn more about repeater field support in the documentation. The plugin has the potential to make your database activity more efficient by reducing the amount of data you have in your post and user meta tables.
Additionally, the plugin has built in mechanisms that query and cache an entire row of data at a time in WPs object cache. This means that, when you use ACFs API functions – e.g; get_field() and update_field() – in a template file, only the first call to the function will call the database provided all other data in subsequent calls is from the same database table and for the same parent object (post, page, user). There is a slight overhead here, but we are currently working on ways to further improve the efficiency and performance of the plugin.
If using some custom SQL or some other custom search mechanism to search your custom tables, you should be able to yield faster results using well-organised tables than if you were searching the post meta table with lots of data. We are currently working on tools to help developers query their custom tables. If you have requests or suggestions for tools/functionality you would like to see, please let us know.
We are currently working on a migration tool to handle just this. At present, existing data will remain in the core meta tables which the plugin will fall back to where custom table data does not exist. When you next save the post/object, the data will be saved to the appropriate custom tables. As of version 1.1, the plugin has an opt-in compatibility layer that makes it possible to import data into custom database tables.
Learn more about WP All Import support here Out of the box, the two plugins are compatible but there are some limitations around filtering and sorting. We love Admin Columns Pro and will be working on improving compatibility between the two plugins. Learn more about Admin Columns Pro support here Hi! We made this ACF Custom Database Tables was created by Phil & Aaron, two WordPress developers based in Melbourne, Australia.
Phil Kurth. Director & WordPress Product Dev Aaron Rutley. Product Manager & WordPress Dev Good dev stuff, delivered. Product news, tips, and other cool things we make. We never share your data. Read our Privacy Policy Twitter Facebook GitHub © 2016 – 2026 Hookturn Digital. All rights reserved.
Premium Plugins
Get access to ACF Custom Database Tables and 5,000+ more plugins with a subscription.
Subscribe to connect and install
This plugin is distributed under GPL license. Zeebrar is not affiliated with or endorsed by the original developer.
Share media files across WordPress multisite networks to reduce storage and simplify content management.
Media library organization plugin with folders, cloud integration, AI SEO metadata, and user access controls for WordPress.
WordPress analytics plugin that tracks visitor behavior and stores data directly on your site without external services.
Premium add-on extension for Bricks Builder that provides additional elements, tools, and functionality to enhance page building capabilities.
FooBox Premium was the first lightbox to take responsive layout seriously.
Building powerful websites by extending Bricks.