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

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

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.
$callbackcallable|string|arrayrequired
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.

Return

string|null Unique function ID for usage as array key.
Null if a valid $callback is not passed.

Source

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];
	}

	return null;
}

Changelog

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

User Contributed Notes

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