Make WordPress Core

Ticket #8420: final.diff

File final.diff, 2.5 KB (added by kapeels, 14 years ago)

Hope this IS the final one.

  • wp-includes/functions.php

     
    26602660        if ( function_exists( 'apply_filters' ) ) {
    26612661                $function = apply_filters( 'wp_die_handler', '_default_wp_die_handler');
    26622662        }else {
     2663            if(defined('DOING_AJAX') && DOING_AJAX)
     2664                $function = '_ajax_wp_die_handler';           
     2665            else
    26632666                $function = '_default_wp_die_handler';
    26642667        }
    26652668
     
    27582761        die();
    27592762}
    27602763
     2764function _ajax_die_handler_filter() {
     2765    return '_ajax_wp_die_handler';
     2766}
     2767
    27612768/**
     2769 * Kill WordPress execution and send AJAX response with error message.
     2770 *
     2771 * This is AJAX-version of the default handler for wp_die
     2772 *
     2773 * @since 3.0.0
     2774 * @access private
     2775 *
     2776 * @param string $message Error message.
     2777 * @param string $title Error title.
     2778 * @param string|array $args Optional arguements to control behaviour.
     2779 */
     2780function _ajax_wp_die_handler( $message, $title = '', $args = array() ) {   
     2781        $defaults = array( 'response' => 200 );
     2782        $r = wp_parse_args($args, $defaults);           
     2783        if ( !headers_sent() ) {
     2784            status_header( $r['response'] );
     2785        }
     2786        if ( function_exists( 'is_wp_error' ) && is_wp_error( $message ) ) {
     2787                if ( empty( $title ) ) {
     2788                        $error_data = $message->get_error_data();
     2789                        if ( is_array( $error_data ) && isset( $error_data['title'] ) )
     2790                                $title = $error_data['title'];
     2791                }
     2792                $errors = $message->get_error_messages();
     2793                switch ( count( $errors ) ) :
     2794                case 0 :
     2795                        $message = '';
     2796                        break;
     2797                case 1 :
     2798                        $message = "<p>{$errors[0]}</p>";
     2799                        break;
     2800                default :
     2801                        $message = "<ul>\n\t\t<li>" . join( "</li>\n\t\t<li>", $errors ) . "</li>\n\t</ul>";
     2802                        break;
     2803                endswitch;
     2804        } elseif ( is_string( $message ) ) {
     2805                $message = "<p>$message</p>";
     2806        }       
     2807        echo "<div style='text-align:left;'>" . $message . "</div>";   
     2808        die;
     2809}
     2810/**
    27622811 * Retrieve the WordPress home page URL.
    27632812 *
    27642813 * If the constant named 'WP_HOME' exists, then it willl be used and returned by
  • wp-admin/admin-ajax.php

     
    2121
    2222require_once('./includes/admin.php');
    2323@header('Content-Type: text/html; charset=' . get_option('blog_charset'));
     24add_filter('wp_die_handler','_ajax_die_handler_filter');
    2425send_nosniff_header();
    2526
    2627do_action('admin_init');