# _get_plugin_from_callback()

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

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

## Сигнатура

```php
_get_plugin_from_callback( callable $callback ): array|null
```

## Описание

Внутренняя вспомогательная функция для определения плагина по функции обратного вызова метабокса.

## Параметры

- `$callback` `callable` — обязательный. Функция обратного вызова для проверки.

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

`array|null`

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

Файл: `wp-admin/includes/template.php:1249`

```php
function _get_plugin_from_callback( $callback ) {
	try {
		if ( is_array( $callback ) ) {
			$reflection = new ReflectionMethod( $callback[0], $callback[1] );
		} elseif ( is_string( $callback ) && str_contains( $callback, '::' ) ) {
			$reflection = new ReflectionMethod( $callback );
		} else {
			$reflection = new ReflectionFunction( $callback );
		}
	} catch ( ReflectionException $exception ) {
		// We could not properly reflect on the callable, so we abort here.
		return null;
	}

	// Don't show an error if it's an internal PHP function.
	if ( ! $reflection->isInternal() ) {

		// Only show errors if the meta box was registered by a plugin.
		$filename   = wp_normalize_path( $reflection->getFileName() );
		$plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );

		if ( str_starts_with( $filename, $plugin_dir ) ) {
			$filename = str_replace( $plugin_dir, '', $filename );
			$filename = preg_replace( '|^/([^/]*/).*$|', '\\1', $filename );

			$plugins = get_plugins();

			foreach ( $plugins as $name => $plugin ) {
				if ( str_starts_with( $name, $filename ) ) {
					return $plugin;
				}
			}
		}
	}

	return null;
}
```

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

- 5.0.0 — Introduced.

## Связанные

Использует: [`get_plugins`](https://chugunov.pro/api-wordpress/functions/get_plugins/), [`wp_normalize_path`](https://chugunov.pro/api-wordpress/functions/wp_normalize_path/).
Используется в: [`do_block_editor_incompatible_meta_box`](https://chugunov.pro/api-wordpress/functions/do_block_editor_incompatible_meta_box/), [`do_meta_boxes`](https://chugunov.pro/api-wordpress/functions/do_meta_boxes/).

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