# wp_add_dashboard_widget()

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

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

## Сигнатура

```php
wp_add_dashboard_widget( string $widget_id, string $widget_name, callable $callback, callable $control_callback = null, array $callback_args = null, string $context = 'normal', string $priority = 'core' )
```

## Описание

Добавляет новый виджет на панель управления.

## Параметры

- `$widget_id` `string` — обязательный. ID виджета (используется в атрибуте 'id' виджета).
- `$widget_name` `string` — обязательный. Заголовок виджета.
- `$callback` `callable` — обязательный. Функция, которая наполняет виджет нужным содержимым.
  
  Функция должна выводить результат через echo.
- `$control_callback` `callable` — необязательный, по умолчанию `null`. Функция, которая выводит элементы управления виджета.
- `$callback_args` `array` — необязательный, по умолчанию `null`. Данные, которые следует установить в качестве свойства $args массива виджета (это второй параметр, передаваемый в вашу функцию обратного вызова).
- `$context` `string` — необязательный, по умолчанию `'normal'`. Контекст в пределах экрана, где должен отображаться блок.
  
  Допустимые значения: 'normal', 'side', 'column3' или 'column4'. Значение по умолчанию 'normal'.
- `$priority` `string` — необязательный, по умолчанию `'core'`. Приоритет в пределах контекста, с которым должен отображаться блок.
  
  Допустимые значения: 'high', 'core', 'default' или 'low'. Значение по умолчанию 'core'.

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

Файл: `wp-admin/includes/dashboard.php:188`

```php
function wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback = null, $callback_args = null, $context = 'normal', $priority = 'core' ) {
	global $wp_dashboard_control_callbacks;

	$screen = get_current_screen();

	$private_callback_args = array( '__widget_basename' => $widget_name );

	if ( is_null( $callback_args ) ) {
		$callback_args = $private_callback_args;
	} elseif ( is_array( $callback_args ) ) {
		$callback_args = array_merge( $callback_args, $private_callback_args );
	}

	if ( $control_callback && is_callable( $control_callback ) && current_user_can( 'edit_dashboard' ) ) {
		$wp_dashboard_control_callbacks[ $widget_id ] = $control_callback;

		if ( isset( $_GET['edit'] ) && $widget_id === $_GET['edit'] ) {
			list($url)    = explode( '#', add_query_arg( 'edit', false ), 2 );
			$widget_name .= ' <span class="postbox-title-action"><a href="' . esc_url( $url ) . '">' . __( 'Cancel' ) . '</a></span>';
			$callback     = '_wp_dashboard_control_callback';
		} else {
			list($url)    = explode( '#', add_query_arg( 'edit', $widget_id ), 2 );
			$widget_name .= ' <span class="postbox-title-action"><a href="' . esc_url( "$url#$widget_id" ) . '" class="edit-box open-box">' . __( 'Configure' ) . '</a></span>';
		}
	}

	$side_widgets = array( 'dashboard_quick_press', 'dashboard_primary' );

	if ( in_array( $widget_id, $side_widgets, true ) ) {
		$context = 'side';
	}

	$high_priority_widgets = array( 'dashboard_browser_nag', 'dashboard_php_nag' );

	if ( in_array( $widget_id, $high_priority_widgets, true ) ) {
		$priority = 'high';
	}

	if ( empty( $context ) ) {
		$context = 'normal';
	}

	if ( empty( $priority ) ) {
		$priority = 'core';
	}

	add_meta_box( $widget_id, $widget_name, $callback, $screen, $context, $priority, $callback_args );
}
```

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

- 5.6.0 — The $context and $priority parameters were added.
- 2.7.0 — Introduced.

## Связанные

Использует: [`get_current_screen`](https://chugunov.pro/api-wordpress/functions/get_current_screen/), [`add_meta_box`](https://chugunov.pro/api-wordpress/functions/add_meta_box/), [`current_user_can`](https://chugunov.pro/api-wordpress/functions/current_user_can/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`esc_url`](https://chugunov.pro/api-wordpress/functions/esc_url/), [`add_query_arg`](https://chugunov.pro/api-wordpress/functions/add_query_arg/).
Используется в: [`wp_dashboard_setup`](https://chugunov.pro/api-wordpress/functions/wp_dashboard_setup/).

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