wp_autosave( array $post_data )

Save a post submitted with XHR


Description Description

Intended for use with heartbeat and autosave.js


Parameters Parameters

$post_data

(array) (Required) Associative array of the submitted post data.


Top ↑

Return Return

(mixed) The value 0 or WP_Error on failure. The saved post ID on success. The ID can be the draft post_id or the autosave revision post_id.


Top ↑

Source Source

File: wp-admin/includes/post.php

1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
function wp_autosave( $post_data ) {
    // Back-compat
    if ( ! defined( 'DOING_AUTOSAVE' ) ) {
        define( 'DOING_AUTOSAVE', true );
    }
 
    $post_id         = (int) $post_data['post_id'];
    $post_data['ID'] = $post_data['post_ID'] = $post_id;
 
    if ( false === wp_verify_nonce( $post_data['_wpnonce'], 'update-post_' . $post_id ) ) {
        return new WP_Error( 'invalid_nonce', __( 'Error while saving.' ) );
    }
 
    $post = get_post( $post_id );
 
    if ( ! current_user_can( 'edit_post', $post->ID ) ) {
        return new WP_Error( 'edit_posts', __( 'Sorry, you are not allowed to edit this item.' ) );
    }
 
    if ( 'auto-draft' == $post->post_status ) {
        $post_data['post_status'] = 'draft';
    }
 
    if ( $post_data['post_type'] != 'page' && ! empty( $post_data['catslist'] ) ) {
        $post_data['post_category'] = explode( ',', $post_data['catslist'] );
    }
 
    if ( ! wp_check_post_lock( $post->ID ) && get_current_user_id() == $post->post_author && ( 'auto-draft' == $post->post_status || 'draft' == $post->post_status ) ) {
        // Drafts and auto-drafts are just overwritten by autosave for the same user if the post is not locked
        return edit_post( wp_slash( $post_data ) );
    } else {
        // Non drafts or other users drafts are not overwritten. The autosave is stored in a special post revision for each user.
        return wp_create_post_autosave( wp_slash( $post_data ) );
    }
}

Top ↑

Changelog Changelog

Changelog
Version Description
3.9.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.