Avoiding WordPress theme fragility with ACF

Bill Erickson explains how to avoid front-end fragility by using WordPress’ built-in get_post_meta() instead of Advanced Custom Fields’ convenience functions. Those functions are easy to use, but while they simplify development in the short term, the delivered theme (and site) can be totally broken by ticking a single checkbox.

From Using Advanced Custom Fields without frontend dependency:

There is no reason to use an ACF function like get_field() when you can use a WordPress core function like get_post_meta(). Using these ACF functions introduces what I’m calling “frontend dependency”.

If you use an ACF field and the ACF plugin is removed or deactivated (because clients…), visitors to the website will see the white screen of death instead of the website. If you go to the bother of wrapping all the ACF functions in function_exists(), the site will load but none of your metadata will be shown.

ACF could be deployed via mu-plugins, but that breaks automatic updates and adds an additional, manual upkeep requirement to the delivered site.