_wp_filter_build_unique_id( string $hook_name, callable|string|array $callback, int $priority ): string

This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

Builds a unique string ID for a hook callback function.


Functions and static method callbacks are just returned as strings and shouldn’t have any speed penalty.


Unused. The name of the filter to build ID for.
The callback to generate ID for. The callback may or may not exist.
Unused. The order in which the functions associated with a particular action are executed.


string Unique function ID for usage as array key.


function _wp_filter_build_unique_id( $hook_name, $callback, $priority ) {
	if ( is_string( $callback ) ) {
		return $callback;

	if ( is_object( $callback ) ) {
		// Closures are currently implemented as objects.
		$callback = array( $callback, '' );
	} else {
		$callback = (array) $callback;

	if ( is_object( $callback[0] ) ) {
		// Object class calling.
		return spl_object_hash( $callback[0] ) . $callback[1];
	} elseif ( is_string( $callback[0] ) ) {
		// Static calling.
		return $callback[0] . '::' . $callback[1];


5.3.0Removed workarounds for spl_object_hash().
$hook_name and $priority are no longer used, and the function always returns a string.

User Contributed Notes

You must log in before being able to contribute a note or feedback.