Make WordPress Core

Ticket #22117: 22117.patch

File 22117.patch, 1.5 KB (added by msolution, 12 years 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}