
wp_enqueue_scripts – 如何在WordPress中实现资源队列
_wp_filter_build_unique_id ( $hook_name, $callback, $priority )
_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]; } }