_wp_filter_build_unique_id

函数
_wp_filter_build_unique_id ( $hook_name, $callback, $priority )
Access
Private
参数
  • (string) $hook_name Unused. The name of the filter to build ID for.
    Required:
  • (callable|string|array) $callback The callback to generate ID for. The callback may or may not exist.
    Required:
  • (int) $priority Unused. The order in which the functions associated with a particular action are executed.
    Required:
返回值
  • (string) Unique function ID for usage as array key.
定义位置
相关方法
wp_unique_idwp_filter_object_listwp_filter_wp_template_unique_post_slugwp_filter_oembed_result_http_build_query
引入
2.2.3
弃用
-

_wp_filter_build_unique_id: 这个函数用来为一个WordPress过滤器生成一个唯一的ID。过滤器被用来修改WordPress中的数据,这个函数确保每个过滤器有一个唯一的ID。

构建唯一的ID,用于存储和检索。

串行化回调的老方法引起了一些问题,这个函数就是解决方案。它的工作原理是检查对象并在类中创建一个新的属性,以跟踪对象和需要添加的同一类的新对象。

它还允许在对象改变类的属性后,为其删除动作和过滤器。可以在你的类中包含$wp_filter_id这个属性,并将其设置为”null”或一个数字来绕过这个变通方法。然而,这将阻止你添加新的类,任何新的类都将覆盖之前同一类的钩子。

函数和静态方法的回调只是作为字符串返回,不应该有任何速度上的损失。

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

常见问题

FAQs
查看更多 >