Builds a unique string ID for a hook callback function.
Description
Functions and static method callbacks are just returned as strings and shouldn’t have any speed penalty.
Parameters
$hook_namestringrequired- Unused. The name of the filter to build ID for.
$callbackcallablerequired- The callback to generate ID for. The callback may or may not exist.
$priorityintrequired- Unused. The order in which the functions associated with a particular action are executed.
Source
function _wp_filter_build_unique_id( $hook_name, $callback, $priority ): ?string {
if ( is_string( $callback ) ) {
return $callback;
}
if ( is_object( $callback ) ) {
return (string) spl_object_id( $callback );
}
if ( ! isset( $callback[1] ) || ! is_string( $callback[1] ) ) {
return null;
}
if ( is_object( $callback[0] ) ) {
// Object class calling.
return ( (string) spl_object_id( $callback[0] ) ) . $callback[1];
} elseif ( is_string( $callback[0] ) ) {
// Static calling.
return $callback[0] . '::' . $callback[1];
}
return null;
}
Changelog
| Version | Description |
|---|---|
| 7.1.0 | Uses spl_object_id() instead of spl_object_hash() for performance. |
| 6.9.0 | Returns explicit null if an invalid callback is supplied. |
| 5.3.0 | Removed workarounds for spl_object_hash().$hook_name and $priority are no longer used, and no longer returns false, but can still return void for invalid callbacks. |
| 2.2.3 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.