_get_plugin_from_callback

函数
_get_plugin_from_callback ( $callback )
Access
Private
参数
  • (callable) $callback The callback function to check.
    Required:
返回值
  • (array|null) The plugin that the callback belongs to, or null if it doesn't belong to a plugin.
定义位置
相关方法
wp_targeted_link_rel_callback_sort_uname_callbackget_plugin_datawp_get_plugin_error_sort_name_callback
引入
5.0.0
弃用
-

_get_plugin_from_callback是一个WordPress函数,它返回调用某个回调函数的插件的名称: 这个函数被用来确定哪个插件导致一个特定的动作或过滤器被触发。它需要一个参数,即回调函数的名称。

内部辅助函数,从元框回调中找到插件。

function _get_plugin_from_callback( $callback ) {
	try {
		if ( is_array( $callback ) ) {
			$reflection = new ReflectionMethod( $callback[0], $callback[1] );
		} elseif ( is_string( $callback ) && false !== strpos( $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 ( strpos( $filename, $plugin_dir ) === 0 ) {
			$filename = str_replace( $plugin_dir, '', $filename );
			$filename = preg_replace( '|^/([^/]*/).*$|', '\1', $filename );

			$plugins = get_plugins();

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

	return null;
}

常见问题

FAQs
查看更多 >
闪电侠

(工作日 10:00 - 18:30 为您服务)

2026-01-29 03:09:28

您好,无论是售前、售后、意见建议……均可通过联系工单与我们取得联系。

您也可选择聊天工具与我们即时沟通或点击查看:

您的工单我们已经收到,我们将会尽快跟您联系!
取消
选择聊天工具: