# do_action_ref_array()

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

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

## Сигнатура

```php
do_action_ref_array( string $hook_name, array $args )
```

## Описание

См. alsodo_action(): эта функция идентична, но аргументы, передаваемые функциям, привязанным к $hook_name, передаются в виде массива.

## Параметры

- `$hook_name` `string` — обязательный. Имя выполняемого действия.
- `$args` `array` — обязательный. Аргументы, передаваемые функциям, привязанным к $hook_name.

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

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

```php
function do_action_ref_array( $hook_name, $args ) {
	global $wp_filter, $wp_actions, $wp_current_filter;

	if ( ! isset( $wp_actions[ $hook_name ] ) ) {
		$wp_actions[ $hook_name ] = 1;
	} else {
		++$wp_actions[ $hook_name ];
	}

	// Do 'all' actions first.
	if ( isset( $wp_filter['all'] ) ) {
		$wp_current_filter[] = $hook_name;
		$all_args            = func_get_args(); // phpcs:ignore PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection
		_wp_call_all_hook( $all_args );
	}

	if ( ! isset( $wp_filter[ $hook_name ] ) ) {
		if ( isset( $wp_filter['all'] ) ) {
			array_pop( $wp_current_filter );
		}

		return;
	}

	if ( ! isset( $wp_filter['all'] ) ) {
		$wp_current_filter[] = $hook_name;
	}

	$wp_filter[ $hook_name ]->do_action( $args );

	array_pop( $wp_current_filter );
}
```

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

- 2.1.0 — Introduced.

## Связанные

Использует: [`_wp_call_all_hook`](https://chugunov.pro/api-wordpress/functions/_wp_call_all_hook/).
Используется в: `WP_REST_Widget_Types_Controller::get_widget_form`, `WP_Widget::form`, `WP_HTTP_Requests_Hooks::dispatch`, `WP_Term_Query::get_terms`, `WP_Network_Query::get_networks`, `WP_Network_Query::parse_query`, `WP_Site_Query::get_sites`, `WP_Site_Query::parse_query`, [`do_action_deprecated`](https://chugunov.pro/api-wordpress/functions/do_action_deprecated/), `WP_Comment_Query::get_comments`, `WP_Comment_Query::parse_query`, `WP_Query::setup_postdata`, `WP_User_Search::prepare_query`, [`edit_user`](https://chugunov.pro/api-wordpress/functions/edit_user/), `WP_Styles::__construct`, [`wp_mail`](https://chugunov.pro/api-wordpress/functions/wp_mail/), `WP::main`, `WP::parse_request`, `WP::send_headers`, `WP_Query::the_post`, `WP_Query::have_posts`, `WP_Query::set_404`, `WP_Query::get_posts`, `WP_Query::parse_query`, `WP_Http_Curl::request`, [`wp_admin_bar_render`](https://chugunov.pro/api-wordpress/functions/wp_admin_bar_render/), [`fetch_feed`](https://chugunov.pro/api-wordpress/functions/fetch_feed/), `WP_User_Query::prepare_query`, [`wp_signon`](https://chugunov.pro/api-wordpress/functions/wp_signon/), `WP_Rewrite::rewrite_rules`, `WP_Scripts::init`, `WP_Widget::form_callback`, [`pingback`](https://chugunov.pro/api-wordpress/functions/pingback/).

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