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');



We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Cookie Policy. If you continue to use this site, you consent to our use of cookies.