24 Sep 24

Reflecting on Two Years at WP Engine

By Iain Poulson

June 2024 marked two years since the Advanced Custom Fields plugin (ACF) joined WP Engine as part of the Delicious Brains acquisition. Although I’m a few months late getting to this post, I think it’s worth taking the time to stop and reflect and celebrate where ACF is today as part of the WP Engine family.

On a personal note, June marked three years for me working as the product manager for the plugin. As a huge ACF fan and long time user (I still use it on all my sites), being able to help grow the plugin, make it even more awesome, and work every day with such a talented team is a real pleasure.

Like ACF, it’s been two years since I joined WP Engine, moving from a small team at Delicious Brains to a much larger company. The time has flown by—it’s a great place to work with awesome people who care about our customers deeply. Crucially, I’ve been blown away by how much WP Engine “gets” ACF—its place in the ecosystem, the responsibility we have to ACF’s large user base, and the plugin’s underlying mission: to enable users to build WordPress sites their way. WP Engine has taken up the role of stewards of ACF with seriousness and commitment, investing in the team and the product, whilst allowing us to keep doing what we do best—releasing features and improving the plugin.

Let’s recap some of the innovation and investment in the plugin over the last 2 years.

Investment and Innovation

Custom Post Types and Taxonomies

For the longest time, a typical site building workflow would consist of registering a custom post type using code or another plugin, then adding custom fields to that post type with ACF. If you’re adding data other than posts or pages—let’s face it, 99% of the time—this is the content modeling process you would follow. ACF made all this possible with ACF 6.1 released in 2023. Adding this functionality to the free ACF plugin was a major addition for the free user base.

There’s no need for an extra plugin and you can craft your custom post types and taxonomies in the UI with easy-to-understand settings. You can also export them as PHP code or use ACF’s powerful JSON sync to store them in version control and collaborate with your team.

Register a new custom post type with ACF.

ACF Blocks

Since Gutenberg landed in WordPress core, ACF Blocks has been the way to create custom blocks with PHP, rather than using React. Since then, it’s grown alongside changes to the block editor, introducing block.json support in ACF PRO 6.0 along with significant architectural changes required to keep pace with continual changes in Gutenberg, keeping your ACF Blocks working across multiple versions of WordPress in a fully backwards compatible way.

More recently we’ve added support for validation of fields in blocks and the ability to store block field data in the post meta table.

ACF Blocks field values stored in post content comment.

There’s more coming later this year, and work is underway to improve the technical foundations of the feature to allow further innovation and to bring the UI and UX more closely aligned with native blocks, so your content editors won’t know the difference when using them.

New User Interfaces

We gave the plugin admin UI a spruce up with much needed UX improvements in ACF 6.0, and we are closely tracking the design changes to the WordPress admin coming in WordPress core, so we can ensure ACF’s admin works optimally within the dashboard.

In ACF 6.2 we shipped a new UI for registering Options Pages with ACF PRO as well as a much needed way to create bidirectional relationship fields without using custom code.

We’re committed to improving user workflows and implementing UIs, instead of requiring custom code, which improves the plugin for all types of ACF users.

Security

Sometimes the most important investments happen behind the scenes. With a user base as large as ACF’s, security is an extremely important concern. Since joining WP Engine, the way the plugin’s security is handled has really stepped up a notch. The ACF engineers have always been security-focused, however with a large and older codebase there are always things to improve.

With the help of WP Engine’s security team and engineering leadership, we’ve been able to put in place a Vulnerability Disclosure Program for the plugin, invested in an external audit of the codebase for proactive security improvements, and have prioritized security releases to patch discovered vulnerabilities with the utmost speed. We’ve shipped over 15 security releases since joining WP Engine two years ago, which is over three times as many as in the previous 10 years!

Accessibility

Along with security, accessibility has been something we’ve committed to improving in the plugin in our releases since joining WP Engine. ACF 6.0 contained numerous accessibility fixes in our admin UI and new features like the field type selection modal and Icon Picker field type have been built from the ground up with accessibility at the forefront of development.

Community

The ACF community is amazing! There is a Slack channel, multiple Facebook groups, forums and more. However, we wanted to talk to users more and get direct feedback. With the help of WP Engine’s user research team we set up the first ever ACF Annual Survey in 2023, and have just recently closed this year’s survey with results planned later this month.

The ACF engineers have really leaned in by helping me run regular open office hours—ACF Chat Fridays—that gives ACF users the opportunity to chat to the team, discuss new features, and for us to showcase what’s been recently released and what’s coming.

We have also leveraged WP Engine’s wider product feedback platform to allow ACF users to request features and vote on others, so we can better gauge what matters most to you. The public feedback board is an important tool for me to help plan future releases

Contribution

Along with maintaining the free and open source ACF plugin that runs on over 2 million websites, the ACF team actively contributes to WordPress core. Over the last couple of years this has taken many forms, but here are the highlights:

  • Anthony Burchell is a core committer and maintainer of the Media Component
  • Liam Gladdy reported a security vulnerability that allowed shortcodes to be used in FSE theme’s comment sections to expose data
  • Liam caught a bug in WordPress 6.6 RC3 just in time before general release
  • Matt Shaw reported and fixed a bug with a change in the site editor triggering all posts to appear as templates to third party plugins
  • Liam has been active in Gutenberg GitHub discussions to ensure the Block Bindings API works with ACF and other custom field plugins
  • Liam has also been working to help deliver the new Bits functionality in the block editor

Additionally, all of the engineering team spends a significant part of their working week testing and validating WordPress releases and new features, leading to many bug reports being submitted on both GitHub and trac, along with trying to advance extendability of the block editor for plugin developers by suggesting where APIs should be public or created, and pushing for more hooks and filters to try and make the block editor as easy to develop for as classic is.

We’re also committed to helping WordPress sites upgrade to the latest versions of PHP and WordPress itself, to ensure that the large number of WordPress sites are as secure as possible. In the last few major versions of ACF we have been raising the minimum versions of PHP and WP required to run ACF and ACF PRO, in order to encourage users to upgrade their sites and servers.

What’s Next

Here’s a look at what we’re working on for the next few releases of ACF.

We’re currently working on adding support for WooCommerce’s HPOS feature to allow ACF fields to be added to the WooCommerce orders screen now that HPOS moves orders from the posts table to a custom database table.

Matt Shaw did a great demo in a recent ACF Chat Fridays session:

To support HPOS there has been a significant refactor in how ACF stores and retrieves data across the various storage locations (post meta, user meta, term meta etc) and this work builds the foundation for more innovation next year, such as the ability to store ACF field values in a custom database table, a heavily requested feature on our feedback board.

The team is also working hard on implementing a new UI for registering ACF Blocks without the need to create a JSON file or use PHP code, allowing users to register blocks and then create the render template. Blocks will be able to be synced with JSON and exported as we do for field groups, post types, taxonomies, and Options Pages. ACF Blocks will get even more love to ensure it continues to be the best way for developers to quickly and easily create custom blocks.

We have a big roadmap with lots of improvements to make, but please let us know what matters the most to you on our feedback board.

The Future

ACF is a hugely important plugin in the WordPress community, and an essential tool for so many developers and site builders. Myself, the ACF team and all of WP Engine are committed to ensuring it gets better every day. Here’s to many more years! 🥂

About the Author

For plugin support, please contact our support team directly, as comments aren't actively monitored.