Alert: 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.

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

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.

Top ↑


$hook_name string Required
Unused. The name of the filter to build ID for.
$callback callable|string|array Required
The callback to generate ID for. The callback may or may not exist.
$priority int Required
Unused. The order in which the functions associated with a particular action are executed.

Top ↑


string Unique function ID for usage as array key.

Top ↑


File: wp-includes/plugin.php. View all references

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

Top ↑


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

Top ↑

User Contributed Notes

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