wpseek.com
A WordPress-centric search engine for devs and theme authors
_get_plugin_from_callback is private and should not be used in themes or plugins directly.
_get_plugin_from_callback › WordPress Function
Since5.0.0
Deprecatedn/a
› _get_plugin_from_callback ( $callback )
Access: |
|
Parameters: |
|
Returns: |
|
Defined at: |
|
Codex: |
Internal helper function to find the plugin from a meta box callback.
Related Functions: wp_targeted_link_rel_callback, _sort_uname_callback, get_plugin_data, wp_get_plugin_error, _sort_name_callback
Source
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; }