Title: wp_ability_normalize_input
Published: August 20, 2026

---

# apply_filters( ‘wp_ability_normalize_input’, mixed $input, string $ability_name, WP_Ability $ability )

## In this article

 * [Description](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#wp--skip-link--target)

Filters the normalized input for an ability.

## 󠀁[Description](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#description)󠁿

Fires after `normalize_input()` has applied any default value declared in the input
schema, giving plugins a chance to adjust the input before it is consumed downstream.
Common uses include defaulting beyond what JSON Schema can express, prompt enrichment,
and injecting caller metadata.

Returning a `WP_Error` causes callers that propagate it (such as `execute()`) to
halt before validation, permission checks, and the registered execute callback.

## 󠀁[Parameters](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#parameters)󠁿

 `$input`mixed

The normalized input data.

`$ability_name`string

The name of the ability.

`$ability`[WP_Ability](https://developer.wordpress.org/reference/classes/wp_ability/)

The ability instance.

## 󠀁[Source](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#source)󠁿

    ```php
    return apply_filters( 'wp_ability_normalize_input', $input, $this->name, $this );
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/abilities-api/class-wp-ability.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/abilities-api/class-wp-ability.php#L508)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/abilities-api/class-wp-ability.php#L508-L508)

## 󠀁[Related](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#related)󠁿

| Used by | Description | 
| [WP_Ability::normalize_input()](https://developer.wordpress.org/reference/classes/wp_ability/normalize_input/)`wp-includes/abilities-api/class-wp-ability.php` |

Normalizes the input for the ability, applying the default value from the input schema when needed.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/hooks/wp_ability_normalize_input/?output_format=md#changelog)󠁿

| Version | Description | 
| [7.1.0](https://developer.wordpress.org/reference/since/7.1.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fwp_ability_normalize_input%2F)
before being able to contribute a note or feedback.