_wp_filter_build_unique_id( string $hook_name, callable $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.
$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.

Return

string|null Unique function ID for usage as array key, or null if it couldn’t be determined.

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

VersionDescription
7.1.0Uses spl_object_id() instead of spl_object_hash() for performance.
6.9.0Returns explicit null if an invalid callback is supplied.
5.3.0Removed 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.3Introduced.

User Contributed Notes

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