Fallback to Options Page for Advanced Custom Fields Shortcodes

I recently had a need to have an Options page fallback for the Advanced Custom Fields plugin.

I have a field called, “state_name” that loads on both the Options page and single pages. The idea is that the options page will say “United States”, while each page has the option to override that with “Missouri”, “Illinois”, etc. If a page does not have a state entered in the “state_name” field, then it displays, “United States” from the Options page.

It is easy to code conditional fallbacks for specific fields within the theme, but shortcodes used within wysiwyg custom fields will not fall back to the Options page and have a chance of rendering empty.

For example, if I have a custom field called, “description”, and I use the shortcode, it will return the state name ONLY IF the “state_name” field is filled in on that specific page. There is no fallback to the Options page.

To get the shortcodes to fall back properly as well, add the following to functions.php in your theme:

// via http://www.advancedcustomfields.com/resources/filters/acfload_value/
function my_acf_load_value( $value, $post_id, $field )
{
    // run the_content filter on all textarea values
	if ($value) {
    	//$value = apply_filters('state_name',$value); 
	} else {
        $value = get_field('state_name','options');
    }
 
    return $value;
}
// acf/load_value/name={$field_name} - filter for a specific value load based on it's field name
add_filter('acf/load_value/name=state_name', 'my_acf_load_value', 10, 3);

It is a bit complex to explain, but if you ever have the problem, hopefully this post will help you!

[NOTE: Many thanks to Elliot for helping me solve this one!]

The Mighty Mo! Design Co.

RSS From Toby’s Blog

  • The Horrors of Covering Your Own Ass
    Today I emailed a very simple question to support@[companyname].com (2 sentences total). The automated response I got back was this: Keep in mind that the above was an auto-response and: It’s hard to read. Everything has the same import (e.g. none of it is important enough to call out separately). It’s long. It added absolutely-zero…
  • If something stupid makes money, then it’s not stupid.
    I’ve seen some stupid things in my life…And some of them were really really smart. I remember a story from decades ago where the U.S. military was looking to equip the Stealth Bomber with a fancy computer-driven video system so the pilots could see behind them. Well, the computers failed to get the job done,…
  • There is no destination.
    Coding is a process of failure followed by a moment of great joy. You've gotta ride through the failures to experience the joy...

More posts from themightymo.com

How to deactivate all WordPress plugins via the database

By The Mighty Mo! Design Co. | January 20, 2022

Go to phpMyAdmin. Go to the “wp_options” table. Search for the field named, “active_plugins”. Edit the “active_plugins” field. Delete the value/contents of the “active_plugins” row. Save. That’s it! All your plugins are now deactivated!

Website DNS, Domain Registration, & Hosting Basics

By Toby Cryns | November 30, 2021

Websites have multiple layers: Domain Registration When you register a domain, you pay someone ~$20/year for a .com domain. Registration means you are leasing the domain for a year or more. A domain is the “yoursite.com” or “yoururl.net” or “yourorganization.org” that people type into their browser. We use services like Namecheap, Dreamhost, and GoDaddy for…

Avada ThemeFusion loads 80+ javascript files on every page! DON’T RECOMMEND!

By The Mighty Mo! Design Co. | November 18, 2021

I inherited a WordPress site using Avada ThemeFusion, and it is experiencing really bad performance issues. After doing lots of my standard bag-of-tricks optimizations to little effect, I decided to simply count the javascript files. To my surprise horror, I found it was loading over 80 javascript files on every single page! (For comparison: themightymo.com…

RSS From Toby’s Blog

  • The Horrors of Covering Your Own Ass
    Today I emailed a very simple question to support@[companyname].com (2 sentences total). The automated response I got back was this: Keep in mind that the above was an auto-response and: It’s hard to read. Everything has the same import (e.g. none of it is important enough to call out separately). It’s long. It added absolutely-zero…
  • If something stupid makes money, then it’s not stupid.
    I’ve seen some stupid things in my life…And some of them were really really smart. I remember a story from decades ago where the U.S. military was looking to equip the Stealth Bomber with a fancy computer-driven video system so the pilots could see behind them. Well, the computers failed to get the job done,…
  • There is no destination.
    Coding is a process of failure followed by a moment of great joy. You've gotta ride through the failures to experience the joy...