Support

Account

Home Forums Front-end Issues Add body class based on ACF block choice

Solving

Add body class based on ACF block choice

  • I am trying to add a body class based on an ACF block value.

    My hero block has different layout choices. This is using the button_group field. The choices for the admin are:

      default
      media
      featured

    I would like to output the value of these choices as a body class. It would also be ideal to have the script inside the block php (hero.php). I’ve tried the following but I cannot seem to get it to output.

    function add_acf_body_class($class) {
    	$value = get_field('background_choice');
    	$class[] = $value;
    	return $class;
    }
    add_filter('body_class', 'add_acf_body_class');
  • Hey @jfarr,

    I’ve just tested this, and whilst the function won’t work from within the include, it will work within your theme’s functions.php file.

    Move it there and you should get the result you seek.

    Cheers, Dan

  • The reason that this works in functions.php and does not work in the bock.php file is that the WP hook body_class runs before the template file is loaded. The filter must be added before the hook is run.

  • I think what we’re missing is the ability to access the get_field() outside the blocks loop. I’m not sure how to do this.

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.