функция
since 5.0.0
_get_plugin_from_callback()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
_get_plugin_from_callback( callable $callback ): array|null
Описание
Внутренняя вспомогательная функция для определения плагина по функции обратного вызова метабокса.
Параметры
$callback
callable
обязательный
Функция обратного вызова для проверки.
Возвращаемое значение
array|null
Исходный код
wp-admin/includes/template.php:1249
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. |

