WordPress.org

Make WordPress Core

Ticket #22117: 22117.patch

File 22117.patch, 1.5 KB (added by msolution, 19 months ago)
  • wp-includes/functions.php

     
    36883688        $caller = array(); 
    36893689        $check_class = ! is_null( $ignore_class ); 
    36903690        $skip_frames++; // skip this function 
     3691        $last_info = array(); 
    36913692 
    36923693        foreach ( $trace as $call ) { 
     3694                if ( isset( $call['class'] ) && 'wpdb' == $call['class'] ) 
     3695                { 
     3696                        $last_info['file'] = basename($call['file']); 
     3697                        $last_info['line'] = $call['line']; 
     3698                } 
     3699 
    36933700                if ( $skip_frames > 0 ) { 
    36943701                        $skip_frames--; 
    36953702                } elseif ( isset( $call['class'] ) ) { 
     
    36973704                                continue; // Filter out calls 
    36983705 
    36993706                        $caller[] = "{$call['class']}{$call['type']}{$call['function']}"; 
     3707                        if( empty( $last_info['func'] ) ) $last_info['func'] = $call['class'].'->'.$call['function']; 
    37003708                } else { 
    37013709                        if ( in_array( $call['function'], array( 'do_action', 'apply_filters' ) ) ) { 
    37023710                                $caller[] = "{$call['function']}('{$call['args'][0]}')"; 
     
    37043712                                $caller[] = $call['function'] . "('" . str_replace( array( WP_CONTENT_DIR, ABSPATH ) , '', $call['args'][0] ) . "')"; 
    37053713                        } else { 
    37063714                                $caller[] = $call['function']; 
     3715                                if( empty( $last_info['func'] ) ) $last_info['func'] = $call['function']; 
    37073716                        } 
    37083717                } 
    37093718        } 
    37103719        if ( $pretty ) 
    3711                 return join( ', ', array_reverse( $caller ) ); 
     3720                return sprintf(__("Error at %s, at line %d, in function %s<br/>%s"),  
     3721                                $last_info['file'], $last_info['line'], $last_info['func'], join( ', ', array_reverse( $caller ) ) ); 
    37123722        else 
    37133723                return $caller; 
    37143724}