WordPress.org

Make WordPress Core

Ticket #12400: 12400.4.diff

File 12400.4.diff, 17.7 KB (added by sivel, 7 years ago)

Refreshed patch

  • wp-ajax.php

     
     1<?php
     2/**
     3 * WordPress Primary AJAX Process Execution.
     4 *
     5 * @package WordPress
     6 */
     7
     8/**
     9 * Executing AJAX process.
     10 *
     11 * @since 2.1.0
     12 */
     13define( 'DOING_AJAX', true );
     14
     15if ( ! isset( $_REQUEST['action'] ) )
     16        die( '-1' );
     17
     18if ( ! defined( 'ABSPATH' ) )
     19        require_once( dirname( __FILE__ ) . '/wp-load.php' );
     20
     21if ( defined( 'WP_ADMIN' ) && WP_ADMIN )
     22        require_once( ABSPATH . 'wp-admin/includes/admin.php' );
     23
     24@header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
     25send_nosniff_header();
     26
     27if ( defined( 'WP_ADMIN' ) && WP_ADMIN )
     28        do_action( 'admin_init' );
     29
     30if ( ! is_user_logged_in() ) {
     31        if ( !empty( $_REQUEST['action'] ) )
     32                do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );
     33        die('-1');
     34}
     35
     36if ( isset( $_REQUEST['action'] ) ) {
     37        do_action( 'wp_ajax_' . $_REQUEST['action'] );
     38        die( '0' );
     39} else {
     40        die( '1' );
     41}
     42?>
  • wp-admin/admin-ajax.php

     
    11<?php
    22/**
    3  * WordPress AJAX Process Execution.
     3 * WordPress AJAX Process Execution for admin.
    44 *
    55 * @package WordPress
    66 * @subpackage Administration
    77 */
    8 
    9 /**
    10  * Executing AJAX process.
    11  *
    12  * @since 2.1.0
    13  */
    14 define('DOING_AJAX', true);
    158define('WP_ADMIN', true);
    169
    17 if ( ! isset( $_REQUEST['action'] ) )
    18         die('-1');
     10if ( ! defined( 'ABSPATH' ) )
     11        require_once( '../wp-load.php' );
    1912
    20 require_once('../wp-load.php');
    21 
    22 require_once('./includes/admin.php');
    23 @header('Content-Type: text/html; charset=' . get_option('blog_charset'));
    24 send_nosniff_header();
    25 
    26 do_action('admin_init');
    27 
    2813if ( ! is_user_logged_in() ) {
     14        if ( isset( $_POST['action'] ) )
     15                add_action( 'wp_ajax_nopriv_autosave', 'ajax_logged_out_autosave' );
     16} else {
     17        if ( isset( $_GET['action'] ) ) {
     18                add_action( 'wp_ajax_fetch-list', 'ajax_fetch_list' );
     19                add_action( 'wp_ajax_ajax-tag-search', 'ajax_tag_search' );
     20                add_action( 'wp_ajax_wp-compression-test', 'ajax_wp_compression_test' );
     21                add_action( 'wp_ajax_imgedit-preview', 'ajax_imgedit_preview' );
     22                add_action( 'wp_ajax_menu-quick-search', 'ajax_menu_quick_search' );
     23                add_action( 'wp_ajax_oembed-cache', 'ajax_oembed_cache' );
     24        } else if ( isset( $_POST['action'] ) ) {
     25                add_action( 'wp_ajax_delete-comment', 'ajax_delete_comment' );
     26                add_action( 'wp_ajax_delete-tag', 'ajax_delete_tag' );
     27                add_action( 'wp_ajax_delete-link', 'ajax_delete_link' );
     28                add_action( 'wp_ajax_delete-meta', 'ajax_delete_meta' );
     29                add_action( 'wp_ajax_delete-post', 'ajax_delete_post' );
     30                add_action( 'wp_ajax_trash-post', 'ajax_trash_untrash_post' );
     31                add_action( 'wp_ajax_untrash-post', 'ajax_trash_untrash_post' );
     32                add_action( 'wp_ajax_delete-page', 'ajax_delete_page' );
     33                add_action( 'wp_ajax_dim-comment', 'ajax_dim_comment' );
     34                add_action( 'wp_ajax_add-link-category', 'ajax_add_link_category' );
     35                add_action( 'wp_ajax_add-tag', 'ajax_add_tag' );
     36                add_action( 'wp_ajax_get-tagcloud', 'ajax_get_tagcloud' );
     37                add_action( 'wp_ajax_get-comments', 'ajax_get_comments' );
     38                add_action( 'wp_ajax_replyto-comment', 'ajax_replyto_comment' );
     39                add_action( 'wp_ajax_edit-comment', 'ajax_edit_comment' );
     40                add_action( 'wp_ajax_add-menu-item', 'ajax_add_menu_item' );
     41                add_action( 'wp_ajax_add-meta', 'ajax_add_meta' );
     42                add_action( 'wp_ajax_add-user', 'ajax_add_user' );
     43                add_action( 'wp_ajax_autosave', 'ajax_autosave' );
     44                add_action( 'wp_ajax_closed-postboxes', 'ajax_closed_postboxes' );
     45                add_action( 'wp_ajax_hidden-columns', 'ajax_hidden_columns' );
     46                add_action( 'wp_ajax_menu-get-metabox', 'ajax_menu_get_metabox' );
     47                add_action( 'wp_ajax_menu-quick-search', 'ajax_menu_quick_search' );
     48                add_action( 'wp_ajax_wp-link-ajax', 'ajax_wp_link_ajax' );
     49                add_action( 'wp_ajax_menu-locations-save', 'ajax_menu_locations_save' );
     50                add_action( 'wp_ajax_meta-box-order', 'ajax_meta_box_order' );
     51                add_action( 'wp_ajax_get-permalink', 'ajax_get_permalink' );
     52                add_action( 'wp_ajax_sample-permalink', 'ajax_sample_permalink' );
     53                add_action( 'wp_ajax_inline-save', 'ajax_inline_save' );
     54                add_action( 'wp_ajax_inline-save-tax', 'ajax_inline_save_tax' );
     55                add_action( 'wp_ajax_find_posts', 'ajax_find_posts' );
     56                add_action( 'wp_ajax_widgets-order', 'ajax_widgets_order' );
     57                add_action( 'wp_ajax_save-widget', 'ajax_save_widget' );
     58                add_action( 'wp_ajax_image-editor', 'ajax_image_editor' );
     59                add_action( 'wp_ajax_set-post-thumbnail', 'ajax_set_post_thumbnail' );
     60                add_action( 'wp_ajax_date_format', 'ajax_date_format' );
     61                add_action( 'wp_ajax_time_format', 'ajax_time_format' );
     62                add_action( 'wp_ajax_wp-fullscreen-save-post', 'ajax_wp_fullscreen_save_post' );
     63        }
     64}
    2965
    30         if ( isset( $_POST['action'] ) && $_POST['action'] == 'autosave' ) {
    31                 $id = isset($_POST['post_ID'])? (int) $_POST['post_ID'] : 0;
     66function ajax_logged_out_autosave() {
     67        $id = isset($_POST['post_ID'])? (int) $_POST['post_ID'] : 0;
    3268
    33                 if ( ! $id )
    34                         die('-1');
     69        if ( ! $id )
     70                die('-1');
    3571
    36                 $message = sprintf( __('<strong>ALERT: You are logged out!</strong> Could not save draft. <a href="%s" target="_blank">Please log in again.</a>'), wp_login_url() );
    37                 $x = new WP_Ajax_Response( array(
    38                         'what' => 'autosave',
    39                         'id' => $id,
    40                         'data' => $message
    41                 ) );
    42                 $x->send();
    43         }
    44 
    45         if ( !empty( $_REQUEST['action'] ) )
    46                 do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );
    47 
    48         die('-1');
     72        $message = sprintf( __('<strong>ALERT: You are logged out!</strong> Could not save draft. <a href="%s" target="_blank">Please log in again.</a>'), wp_login_url() );
     73        $x = new WP_Ajax_Response( array(
     74                'what' => 'autosave',
     75                'id' => $id,
     76                'data' => $message
     77        ) );
     78        $x->send();
    4979}
    5080
    51 if ( isset( $_GET['action'] ) ) :
    52 switch ( $action = $_GET['action'] ) :
    53 case 'fetch-list' :
    54 
     81function ajax_fetch_list() {
    5582        $list_class = $_GET['list_args']['class'];
    5683        check_ajax_referer( "fetch-list-$list_class", '_ajax_fetch_list_nonce' );
    5784
     
    73100        $wp_list_table->ajax_response();
    74101
    75102        die( '0' );
    76         break;
    77 case 'ajax-tag-search' :
     103}
     104
     105function ajax_tag_search() {
    78106        if ( isset( $_GET['tax'] ) ) {
    79107                $taxonomy = sanitize_key( $_GET['tax'] );
    80108                $tax = get_taxonomy( $taxonomy );
     
    100128
    101129        echo join( $results, "\n" );
    102130        die;
    103         break;
    104 case 'wp-compression-test' :
     131}
     132
     133function wp_compression_test() {
    105134        if ( !current_user_can( 'manage_options' ) )
    106135                die('-1');
    107136
     
    144173        }
    145174
    146175        die('0');
    147         break;
    148 case 'imgedit-preview' :
     176}
     177
     178function ajax_imgedit_preview() {
    149179        $post_id = intval($_GET['postid']);
    150180        if ( empty($post_id) || !current_user_can('edit_post', $post_id) )
    151181                die('-1');
     
    157187                die('-1');
    158188
    159189        die();
    160         break;
    161 case 'menu-quick-search':
     190}
     191
     192function admin_menu_quick_search() {
    162193        if ( ! current_user_can( 'edit_theme_options' ) )
    163194                die('-1');
    164195
     
    167198        _wp_ajax_menu_quick_search( $_REQUEST );
    168199
    169200        exit;
    170         break;
    171 case 'oembed-cache' :
     201}
     202
     203function oembed_cache() {
    172204        $return = ( $wp_embed->cache_oembed( $_GET['post'] ) ) ? '1' : '0';
    173205        die( $return );
    174         break;
    175 default :
    176         do_action( 'wp_ajax_' . $_GET['action'] );
    177         die('0');
    178         break;
    179 endswitch;
    180 endif;
     206}
    181207
     208
    182209/**
    183210 * Sends back current comment total and new page links if they need to be updated.
    184211 *
     
    316343        $x->send();
    317344}
    318345
    319 $id = isset($_POST['id'])? (int) $_POST['id'] : 0;
    320 switch ( $action = $_POST['action'] ) :
    321 case 'delete-comment' : // On success, die with time() instead of 1
     346function ajax_delete_comment() { // On success, die with time() instead of 1
     347        $id = isset($_POST['id'])? (int) $_POST['id'] : 0;
    322348        if ( !$comment = get_comment( $id ) )
    323349                die( (string) time() );
    324350        if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
     
    357383        if ( $r ) // Decide if we need to send back '1' or a more complicated response including page links and comment counts
    358384                _wp_ajax_delete_comment_response( $comment->comment_ID, $delta );
    359385        die( '0' );
    360         break;
    361 case 'delete-tag' :
     386}
     387
     388function ajax_delete_tag() {
    362389        $tag_id = (int) $_POST['tag_ID'];
    363390        check_ajax_referer( "delete-tag_$tag_id" );
    364391
     
    376403                die('1');
    377404        else
    378405                die('0');
    379         break;
    380 case 'delete-link' :
     406}
     407
     408function ajax_delete_link() {
     409        $id = isset($_POST['id'])? (int) $_POST['id'] : 0;
    381410        check_ajax_referer( "delete-bookmark_$id" );
    382411        if ( !current_user_can( 'manage_links' ) )
    383412                die('-1');
     
    390419                die('1');
    391420        else
    392421                die('0');
    393         break;
    394 case 'delete-meta' :
     422}
     423
     424function ajax_delete_meta() {
     425        $id = isset($_POST['id'])? (int) $_POST['id'] : 0;
    395426        check_ajax_referer( "delete-meta_$id" );
    396427        if ( !$meta = get_post_meta_by_id( $id ) )
    397428                die('1');
     
    401432        if ( delete_meta( $meta->meta_id ) )
    402433                die('1');
    403434        die('0');
    404         break;
    405 case 'delete-post' :
     435}
     436
     437function ajax_delete_post() {
     438        $id = isset($_POST['id'])? (int) $_POST['id'] : 0;
    406439        check_ajax_referer( "{$action}_$id" );
    407440        if ( !current_user_can( 'delete_post', $id ) )
    408441                die('-1');
     
    414447                die('1');
    415448        else
    416449                die('0');
    417         break;
    418 case 'trash-post' :
    419 case 'untrash-post' :
     450}
     451
     452function ajax_trash_untrash_post() {
     453        $id = isset($_POST['id'])? (int) $_POST['id'] : 0;
    420454        check_ajax_referer( "{$action}_$id" );
    421455        if ( !current_user_can( 'delete_post', $id ) )
    422456                die('-1');
     
    433467                die('1');
    434468
    435469        die('0');
    436         break;
    437 case 'delete-page' :
     470}
     471
     472function ajax_delete_page() {
     473        $id = isset($_POST['id'])? (int) $_POST['id'] : 0;
    438474        check_ajax_referer( "{$action}_$id" );
    439475        if ( !current_user_can( 'delete_page', $id ) )
    440476                die('-1');
     
    446482                die('1');
    447483        else
    448484                die('0');
    449         break;
    450 case 'dim-comment' : // On success, die with time() instead of 1
     485}
    451486
     487function ajax_dim_comment() { // On success, die with time() instead of 1
     488        $id = isset($_POST['id'])? (int) $_POST['id'] : 0;
    452489        if ( !$comment = get_comment( $id ) ) {
    453490                $x = new WP_Ajax_Response( array(
    454491                        'what' => 'comment',
     
    481518        // Decide if we need to send back '1' or a more complicated response including page links and comment counts
    482519        _wp_ajax_delete_comment_response( $comment->comment_ID );
    483520        die( '0' );
    484         break;
    485 case 'add-link-category' : // On the Fly
     521}
     522
     523function ajax_add_link_category() { // On the Fly
    486524        check_ajax_referer( $action );
    487525        if ( !current_user_can( 'manage_categories' ) )
    488526                die('-1');
     
    506544                ) );
    507545        }
    508546        $x->send();
    509         break;
    510 case 'add-tag' :
     547}
     548
     549function ajax_add_tag() {
    511550        check_ajax_referer( 'add-tag' );
    512551        $post_type = !empty($_POST['post_type']) ? $_POST['post_type'] : 'post';
    513552        $taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
     
    558597                'supplemental' => (array) $tag
    559598                ) );
    560599        $x->send();
    561         break;
    562 case 'get-tagcloud' :
     600}
     601
     602function ajax_get_tagcloud() {
    563603        if ( isset( $_POST['tax'] ) ) {
    564604                $taxonomy = sanitize_key( $_POST['tax'] );
    565605                $tax = get_taxonomy( $taxonomy );
     
    593633        echo $return;
    594634
    595635        exit;
    596         break;
    597 case 'get-comments' :
     636}
     637
     638function ajax_get_comments() {
    598639        check_ajax_referer( $action );
    599640
    600641        set_current_screen( 'edit-comments' );
     
    623664                'data' => $comment_list_item
    624665        ) );
    625666        $x->send();
    626         break;
    627 case 'replyto-comment' :
     667}
     668
     669function ajax_replyto_comment() {
    628670        check_ajax_referer( $action, '_ajax_nonce-replyto-comment' );
    629671
    630672        set_current_screen( 'edit-comments' );
     
    693735        ));
    694736
    695737        $x->send();
    696         break;
    697 case 'edit-comment' :
     738}
     739
     740function ajax_edit_comment() {
    698741        check_ajax_referer( 'replyto-comment', '_ajax_nonce-replyto-comment' );
    699742
    700743        set_current_screen( 'edit-comments' );
     
    731774        ));
    732775
    733776        $x->send();
    734         break;
    735 case 'add-menu-item' :
     777}
     778
     779function ajax_add_menu_item() {
    736780        if ( ! current_user_can( 'edit_theme_options' ) )
    737781                die('-1');
    738782
     
    793837                );
    794838                echo walk_nav_menu_tree( $menu_items, 0, (object) $args );
    795839        }
    796         break;
    797 case 'add-meta' :
     840}
     841
     842function ajax_add_meta() {
    798843        check_ajax_referer( 'add-meta', '_ajax_nonce-add-meta' );
    799844        $c = 0;
    800845        $pid = (int) $_POST['post_id'];
     
    875920                ) );
    876921        }
    877922        $x->send();
    878         break;
    879 case 'add-user' :
     923}
     924
     925function ajax_add_user() {
    880926        check_ajax_referer( $action );
    881927        if ( !current_user_can('create_users') )
    882928                die('-1');
     
    903949                )
    904950        ) );
    905951        $x->send();
    906         break;
    907 case 'autosave' : // The name of this action is hardcoded in edit_post()
     952}
     953
     954function ajax_autosave() { // The name of this action is hardcoded in edit_post()
    908955        define( 'DOING_AUTOSAVE', true );
    909956
    910957        $nonce_age = check_ajax_referer( 'autosave', 'autosavenonce' );
     
    9981045                'supplemental' => $supplemental
    9991046        ) );
    10001047        $x->send();
    1001         break;
    1002 case 'closed-postboxes' :
     1048}
     1049
     1050function ajax_closed_postboxes() {
    10031051        check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' );
    10041052        $closed = isset( $_POST['closed'] ) ? explode( ',', $_POST['closed']) : array();
    10051053        $closed = array_filter($closed);
     
    10241072        }
    10251073
    10261074        die('1');
    1027         break;
    1028 case 'hidden-columns' :
     1075}
     1076
     1077function ajax_hidden_columns() {
    10291078        check_ajax_referer( 'screen-options-nonce', 'screenoptionnonce' );
    10301079        $hidden = isset( $_POST['hidden'] ) ? $_POST['hidden'] : '';
    10311080        $hidden = explode( ',', $_POST['hidden'] );
     
    10411090                update_user_option($user->ID, "manage{$page}columnshidden", $hidden, true);
    10421091
    10431092        die('1');
    1044         break;
    1045 case 'menu-get-metabox' :
     1093}
     1094
     1095function ajax_menu_get_metabox() {
    10461096        if ( ! current_user_can( 'edit_theme_options' ) )
    10471097                die('-1');
    10481098
     
    10801130        }
    10811131
    10821132        exit;
    1083         break;
    1084 case 'menu-quick-search':
     1133}
     1134
     1135function ajax_menu_quick_search() {
    10851136        if ( ! current_user_can( 'edit_theme_options' ) )
    10861137                die('-1');
    10871138
     
    10901141        _wp_ajax_menu_quick_search( $_REQUEST );
    10911142
    10921143        exit;
    1093         break;
    1094 case 'wp-link-ajax':
     1144}
     1145
     1146function ajax_wp_link_ajax() {
    10951147        require_once ABSPATH . 'wp-admin/includes/internal-linking.php';
    10961148
    10971149        check_ajax_referer( 'internal-linking', '_ajax_linking_nonce' );
     
    11111163        echo "\n";
    11121164
    11131165        exit;
    1114         break;
    1115 case 'menu-locations-save':
     1166}
     1167
     1168function ajax_menu_locations_save() {
    11161169        if ( ! current_user_can( 'edit_theme_options' ) )
    11171170                die('-1');
    11181171        check_ajax_referer( 'add-menu_item', 'menu-settings-column-nonce' );
     
    11201173                die('0');
    11211174        set_theme_mod( 'nav_menu_locations', array_map( 'absint', $_POST['menu-locations'] ) );
    11221175        die('1');
    1123         break;
    1124 case 'meta-box-order':
     1176}
     1177
     1178function ajax_meta_box_order() {
    11251179        check_ajax_referer( 'meta-box-order' );
    11261180        $order = isset( $_POST['order'] ) ? (array) $_POST['order'] : false;
    11271181        $page_columns = isset( $_POST['page_columns'] ) ? (int) $_POST['page_columns'] : 0;
     
    11401194                update_user_option($user->ID, "screen_layout_$page", $page_columns, true);
    11411195
    11421196        die('1');
    1143         break;
    1144 case 'get-permalink':
     1197}
     1198
     1199function ajax_get_permalink() {
    11451200        check_ajax_referer( 'getpermalink', 'getpermalinknonce' );
    11461201        $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
    11471202        die(add_query_arg(array('preview' => 'true'), get_permalink($post_id)));
    1148 break;
    1149 case 'sample-permalink':
     1203}
     1204
     1205function ajax_sample_permalink() {
    11501206        check_ajax_referer( 'samplepermalink', 'samplepermalinknonce' );
    11511207        $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
    11521208        $title = isset($_POST['new_title'])? $_POST['new_title'] : '';
    11531209        $slug = isset($_POST['new_slug'])? $_POST['new_slug'] : null;
    11541210        die(get_sample_permalink_html($post_id, $title, $slug));
    1155 break;
    1156 case 'inline-save':
     1211}
     1212
     1213function ajax_inline_save() {
    11571214        check_ajax_referer( 'inlineeditnonce', '_inline_edit' );
    11581215
    11591216        if ( ! isset($_POST['post_ID']) || ! ( $post_ID = (int) $_POST['post_ID'] ) )
     
    12101267        $wp_list_table->display_rows( array( get_post( $_POST['post_ID'] ) ) );
    12111268
    12121269        exit;
    1213         break;
    1214 case 'inline-save-tax':
     1270}
     1271
     1272function ajax_inline_save_tax() {
    12151273        check_ajax_referer( 'taxinlineeditnonce', '_inline_edit' );
    12161274
    12171275        $taxonomy = sanitize_key( $_POST['taxonomy'] );
     
    12491307        }
    12501308
    12511309        exit;
    1252         break;
    1253 case 'find_posts':
     1310}
     1311
     1312function ajax_find_posts() {
    12541313        check_ajax_referer( 'find-posts' );
    12551314
    12561315        if ( empty($_POST['ps']) )
     
    13191378                'data' => $html
    13201379        ));
    13211380        $x->send();
     1381}
    13221382
    1323         break;
    1324 case 'widgets-order' :
     1383function ajax_widgets_order() {
    13251384        check_ajax_referer( 'save-sidebar-widgets', 'savewidgets' );
    13261385
    13271386        if ( !current_user_can('edit_theme_options') )
     
    13501409        }
    13511410
    13521411        die('-1');
    1353         break;
    1354 case 'save-widget' :
     1412}
     1413
     1414function ajax_save_widget() {
    13551415        check_ajax_referer( 'save-sidebar-widgets', 'savewidgets' );
    13561416
    13571417        if ( !current_user_can('edit_theme_options') || !isset($_POST['id_base']) )
     
    14181478                call_user_func_array( $form['callback'], $form['params'] );
    14191479
    14201480        die();
    1421         break;
    1422 case 'image-editor':
     1481}
     1482
     1483function ajax_image_editor() {
    14231484        $attachment_id = intval($_POST['postid']);
    14241485        if ( empty($attachment_id) || !current_user_can('edit_post', $attachment_id) )
    14251486                die('-1');
     
    14441505
    14451506        wp_image_editor($attachment_id, $msg);
    14461507        die();
    1447         break;
    1448 case 'set-post-thumbnail':
     1508}
     1509
     1510function ajax_set_post_thumbnail() {
    14491511        $post_ID = intval( $_POST['post_id'] );
    14501512        if ( !current_user_can( 'edit_post', $post_ID ) )
    14511513                die( '-1' );
     
    14611523        if ( set_post_thumbnail( $post_ID, $thumbnail_id ) )
    14621524                die( _wp_post_thumbnail_html( $thumbnail_id ) );
    14631525        die( '0' );
    1464         break;
    1465 case 'date_format' :
     1526}
     1527
     1528function ajax_date_format() {
    14661529        die( date_i18n( sanitize_option( 'date_format', $_POST['date'] ) ) );
    1467         break;
    1468 case 'time_format' :
     1530}
     1531
     1532function ajax_time_format() {
    14691533        die( date_i18n( sanitize_option( 'time_format', $_POST['date'] ) ) );
    1470         break;
    1471 case 'wp-fullscreen-save-post' :
     1534}
     1535
     1536function ajax_wp_fullscreen_save_post() {
    14721537        if ( isset($_POST['post_ID']) )
    14731538                $post_id = (int) $_POST['post_ID'];
    14741539        else
     
    15291594
    15301595        echo json_encode( array( 'message' => $message, 'last_edited' => $last_edited ) );
    15311596        die();
    1532         break;
    1533 default :
    1534         do_action( 'wp_ajax_' . $_POST['action'] );
    1535         die('0');
    1536         break;
    1537 endswitch;
     1597}
     1598
     1599include( '../wp-ajax.php' );
    15381600?>