# the_widget()

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

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

## Сигнатура

```php
the_widget( string $widget, array $instance = array(), array $args = array() )
```

## Описание

Выводит произвольный виджет в виде шаблонного тега.

## Параметры

- `$widget` `string` — обязательный. Имя PHP-класса виджета (см. class-wp-widget.php).
- `$instance` `array` — необязательный, по умолчанию `array()`. Настройки экземпляра виджета.
- `$args` `array` — необязательный, по умолчанию `array()`. Массив аргументов для настройки отображения виджета.
  
  before_widget stringHTML-содержимое, добавляемое перед HTML-выводом виджета.
  
  По умолчанию , где %s — имя класса виджета.
  
  after_widget stringHTML-содержимое, добавляемое после HTML-вывода виджета.
  
  По умолчанию
  .
  
  before_title stringHTML-содержимое, добавляемое перед заголовком виджета при выводе.
  
  По умолчанию .
  
  after_title stringHTML-содержимое, добавляемое после заголовка виджета при выводе.
  
  По умолчанию
  .

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

Файл: `wp-includes/widgets.php:1218`

```php
function the_widget( $widget, $instance = array(), $args = array() ) {
	global $wp_widget_factory;

	if ( ! isset( $wp_widget_factory->widgets[ $widget ] ) ) {
		_doing_it_wrong(
			__FUNCTION__,
			sprintf(
				/* translators: %s: register_widget() */
				__( 'Widgets need to be registered using %s, before they can be displayed.' ),
				'<code>register_widget()</code>'
			),
			'4.9.0'
		);
		return;
	}

	$widget_obj = $wp_widget_factory->widgets[ $widget ];
	if ( ! ( $widget_obj instanceof WP_Widget ) ) {
		return;
	}

	$default_args          = array(
		'before_widget' => '<div class="widget %s">',
		'after_widget'  => '</div>',
		'before_title'  => '<h2 class="widgettitle">',
		'after_title'   => '</h2>',
	);
	$args                  = wp_parse_args( $args, $default_args );
	$args['before_widget'] = sprintf( $args['before_widget'], $widget_obj->widget_options['classname'] );

	$instance = wp_parse_args( $instance );

	/** This filter is documented in wp-includes/class-wp-widget.php */
	$instance = apply_filters( 'widget_display_callback', $instance, $widget_obj, $args );

	if ( false === $instance ) {
		return;
	}

	/**
	 * Fires before rendering the requested widget.
	 *
	 * @since 3.0.0
	 *
	 * @param string $widget   The widget's class name.
	 * @param array  $instance The current widget instance's settings.
	 * @param array  $args     An array of the widget's sidebar arguments.
	 */
	do_action( 'the_widget', $widget, $instance, $args );

	$widget_obj->_set( -1 );
	$widget_obj->widget( $args, $instance );
}
```

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

- 2.8.0 — Introduced.

## Связанные

Использует: [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`_doing_it_wrong`](https://chugunov.pro/api-wordpress/functions/_doing_it_wrong/), [`wp_parse_args`](https://chugunov.pro/api-wordpress/functions/wp_parse_args/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/).
Используется в: `WP_REST_Widget_Types_Controller::get_widget_preview`, `WP_Widget::widget`.

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