This filter allows you to modify a field right before it is rendered onto the page. By this time, the field has been validated and it’s value loaded.

You may also use this filter to prevent the field from being rendered in a form. To do this, return false instead of an array.


  • Added in version 5.0.0


  • $field – the field settings array. This can be modified and then returned


There are 4 ways to hook into this filter.

  1. acf/prepare_field – filter for every field
  2. acf/prepare_field/type={$field_type} – filter for a specific field based on it’s type
  3. acf/prepare_field/name={$field_name} – filter for a specific field based on it’s name
  4. acf/prepare_field/key={$field_key} – filter for a specific field based on it’s name



function my_acf_prepare_field( $field ) {
	if( $field['value'] ) {
		$field['disabled'] = true;

    return $field;

// all
// add_filter('acf/prepare_field', 'my_acf_prepare_field');

// type
// add_filter('acf/prepare_field/type=text', 'my_acf_prepare_field');

// name
add_filter('acf/prepare_field/name=my_text', 'my_acf_prepare_field');

// key
// add_filter('acf/prepare_field/key=field_508a263b40457', 'my_acf_prepare_field');



Hi all. Server maintenance scheduled this Sunday 28th May. Learn more