WP_Hook::apply_filters
Calls the callback functions that have been added to a filter hook.
Method of the class: WP_Hook{}
No Hooks.
Returns
Mixed. The filtered value after all hooked functions are applied to it.
Usage
$WP_Hook = new WP_Hook(); $WP_Hook->apply_filters( $value, $args );
- $value(mixed) (required)
- The value to filter.
- $args(array) (required)
- Additional parameters to pass to the callback functions. This array is expected to include $value at index 0.
Changelog
| Since 4.7.0 | Introduced. |
WP_Hook::apply_filters() WP Hook::apply filters code WP 6.9
public function apply_filters( $value, $args ) {
if ( ! $this->callbacks ) {
return $value;
}
$nesting_level = $this->nesting_level++;
$this->iterations[ $nesting_level ] = $this->priorities;
$num_args = count( $args );
do {
$this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
$priority = $this->current_priority[ $nesting_level ];
foreach ( $this->callbacks[ $priority ] as $the_ ) {
if ( ! $this->doing_action ) {
$args[0] = $value;
}
// Avoid the array_slice() if possible.
if ( 0 === $the_['accepted_args'] ) {
$value = call_user_func( $the_['function'] );
} elseif ( $the_['accepted_args'] >= $num_args ) {
$value = call_user_func_array( $the_['function'], $args );
} else {
$value = call_user_func_array( $the_['function'], array_slice( $args, 0, $the_['accepted_args'] ) );
}
}
} while ( false !== next( $this->iterations[ $nesting_level ] ) );
unset( $this->iterations[ $nesting_level ] );
unset( $this->current_priority[ $nesting_level ] );
--$this->nesting_level;
return $value;
}