Skip to:
Content

bbPress.org

Changeset 7117


Ignore:
Timestamp:
08/11/2020 05:31:05 AM (3 months ago)
Author:
xknown
Message:

Update _wp_filter_build_unique_id to handle anonymous functions.

This is based on https://core.trac.wordpress.org/browser/trunk/src/wp-includes/plugin.php?rev=38282
Props dd32

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/0.9/bb-includes/wp-functions.php

    r6158 r7117  
    893893    if( is_string($function) )
    894894        return $function;
     895
     896    if ( is_object( $function ) ) {
     897        // Closures are currently implemented as objects.
     898        $function = array( $function, '' );
     899    } else {
     900        $function = (array) $function;
     901    }
     902
    895903    // Object Class Calling
    896     else if(is_object($function[0]) )
     904    if(is_object($function[0]) )
    897905    {
    898         $obj_idx = get_class($function[0]).$function[1];
    899         if( is_null($function[0]->wp_filter_id) ) {
    900             $count = count((array)$wp_filter[$tag][$priority]);
    901             $function[0]->wp_filter_id = $count;
    902             $obj_idx .= $count;
    903             unset($count);
    904         } else
    905             $obj_idx .= $function[0]->wp_filter_id;
    906         return $obj_idx;
     906        if ( function_exists('spl_object_hash') ) {
     907            return spl_object_hash($function[0]) . $function[1];
     908        } else {
     909            $obj_idx = get_class($function[0]).$function[1];
     910            if( is_null($function[0]->wp_filter_id) ) {
     911                $count = count((array)$wp_filter[$tag][$priority]);
     912                $function[0]->wp_filter_id = $count;
     913                $obj_idx .= $count;
     914                unset($count);
     915            } else
     916                $obj_idx .= $function[0]->wp_filter_id;
     917            return $obj_idx;
     918        }
    907919    }
    908920    else if( is_string($function[0]) )
Note: See TracChangeset for help on using the changeset viewer.