# add_filter()

URL: https://chugunov.pro/api-wordpress/functions/add_filter/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 0.71.

## Сигнатура

```php
add_filter( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 ): true
```

## Описание

WordPress предоставляет хуки-фильтры, позволяющие плагинам изменять различные типы внутренних данных во время выполнения.
Плагин может изменить данные, привязав функцию обратного вызова к хуку-фильтру. Когда фильтр впоследствии применяется, каждая привязанная функция обратного вызова запускается в порядке приоритета и получает возможность изменить значение, вернув новое.
В следующем примере показано, как функция обратного вызова привязывается к хуку-фильтру.
Обратите внимание, что $example передаётся в функцию обратного вызова, (возможно) изменяется и затем возвращается:
function example_callback( $example ) {
// При необходимости как-либо изменить $example.
return $example;
}
add_filter( 'example_filter', 'example_callback' );Привязанные функции обратного вызова могут принимать от нуля до полного числа аргументов, переданных как параметры в соответствующем вызове apply_filters().
Иными словами, если вызов apply_filters() передаёт всего четыре аргумента, привязанные к нему функции обратного вызова могут не принимать ни одного (то же самое, что 1) или принимать до четырёх. Важно, что значение $accepted_args должно отражать число аргументов, которое привязанная функция обратного вызова действительно решила принимать. Если функция обратного вызова не приняла ни одного аргумента, это считается тем же, что и приём 1 аргумента. Например:
// Вызов фильтра.
$value = apply_filters( 'hook', $value, $arg2, $arg3 );

// Приём нуля/одного аргумента.
function example_callback() {
...
return 'some value';
}
add_filter( 'hook', 'example_callback' ); // Где $priority равно значению по умолчанию 10, $accepted_args равно значению по умолчанию 1.

// Приём двух аргументов (возможны три).
function example_callback( $value, $arg2 ) {
...
return $maybe_modified_value;
}
add_filter( 'hook', 'example_callback', 10, 2 ); // Где $priority равно 10, $accepted_args равно 2._Примечание:_ Функция вернёт true независимо от того, является функция обратного вызова корректной или нет.
Забота об этом ложится на вас. Так сделано в целях оптимизации, чтобы всё работало максимально быстро.

## Параметры

- `$hook_name` `string` — обязательный. Имя фильтра, к которому добавляется функция обратного вызова.
- `$callback` `callable` — обязательный. Функция обратного вызова, которая будет запущена при применении фильтра.
- `$priority` `int` — необязательный, по умолчанию `10`. Задаёт порядок, в котором выполняются функции, связанные с конкретным фильтром.
  
  Меньшие числа соответствуют более раннему выполнению, а функции с одинаковым приоритетом выполняются в том порядке, в котором были добавлены к фильтру.
- `$accepted_args` `int` — необязательный, по умолчанию `1`. Число аргументов, которое принимает функция.

## Возвращаемое значение

`true`

## Исходный код

Файл: `wp-includes/plugin.php:121`

```php
function add_filter( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) {
	global $wp_filter;

	if ( ! isset( $wp_filter[ $hook_name ] ) ) {
		$wp_filter[ $hook_name ] = new WP_Hook();
	}

	$wp_filter[ $hook_name ]->add_filter( $hook_name, $callback, $priority, $accepted_args );

	return true;
}
```

## История изменений

- 0.71 — Introduced.

## Связанные

Используется в: [`wp_load_classic_theme_block_styles_on_demand`](https://chugunov.pro/api-wordpress/functions/wp_load_classic_theme_block_styles_on_demand/), [`wp_hoist_late_printed_styles`](https://chugunov.pro/api-wordpress/functions/wp_hoist_late_printed_styles/), [`apply_block_hooks_to_content_from_post_object`](https://chugunov.pro/api-wordpress/functions/apply_block_hooks_to_content_from_post_object/), [`insert_hooked_blocks_into_rest_response`](https://chugunov.pro/api-wordpress/functions/insert_hooked_blocks_into_rest_response/), [`apply_block_hooks_to_content`](https://chugunov.pro/api-wordpress/functions/apply_block_hooks_to_content/), [`wp_font_dir`](https://chugunov.pro/api-wordpress/functions/wp_font_dir/), `WP_Interactivity_API::add_hooks`, `WP_REST_Font_Faces_Controller::handle_font_file_upload`, [`wp_handle_upload`](https://chugunov.pro/api-wordpress/functions/wp_handle_upload/), [`_wp_footnotes_kses_init_filters`](https://chugunov.pro/api-wordpress/functions/_wp_footnotes_kses_init_filters/), [`wp_initialize_theme_preview_hooks`](https://chugunov.pro/api-wordpress/functions/wp_initialize_theme_preview_hooks/), [`_wp_get_iframed_editor_assets`](https://chugunov.pro/api-wordpress/functions/_wp_get_iframed_editor_assets/), `WP_REST_Menu_Items_Controller::prepare_item_for_response`, `WP_REST_Global_Styles_Controller::prepare_item_for_response`, [`_add_default_theme_supports`](https://chugunov.pro/api-wordpress/functions/_add_default_theme_supports/), [`wp_enqueue_block_style`](https://chugunov.pro/api-wordpress/functions/wp_enqueue_block_style/), `WP_Widget_Block::__construct`, [`wp_enqueue_global_styles`](https://chugunov.pro/api-wordpress/functions/wp_enqueue_global_styles/), `WP_Sitemaps_Renderer::check_for_simple_xml_availability`, `WP_Sitemaps::init`, [`wp_pre_kses_block_attributes`](https://chugunov.pro/api-wordpress/functions/wp_pre_kses_block_attributes/), [`enqueue_block_styles_assets`](https://chugunov.pro/api-wordpress/functions/enqueue_block_styles_assets/), `WP_Site_Health::__construct`, `WP_Site_Health`, [`wp_get_active_and_valid_themes`](https://chugunov.pro/api-wordpress/functions/wp_get_active_and_valid_themes/), [`update_sitemeta_cache`](https://chugunov.pro/api-wordpress/functions/update_sitemeta_cache/), `WP_REST_Post_Search_Handler::prepare_item`, [`do_blocks`](https://chugunov.pro/api-wordpress/functions/do_blocks/), [`_restore_wpautop_hook`](https://chugunov.pro/api-wordpress/functions/_restore_wpautop_hook/), [`wpautop`](https://chugunov.pro/api-wordpress/functions/wpautop/), `wpdb::placeholder_escape`, `WP_Widget_Custom_HTML::widget`, `WP_Widget_Media::_register_one`, `WP_Widget_Media_Video::render_media`, `WP_Customize_Manager::save_changeset_post`, `WP_REST_Attachments_Controller::prepare_items_query`, `WP_Query`, `WP_REST_Posts_Controller::prepare_item_for_response`, `WP_REST_Posts_Controller::get_item_permissions_check`, `WP_REST_Posts_Controller::get_items`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/add_filter/
