Definition:
function wp_update_post($postarr = array() {}
Update a post with new post data.
The date does not have to be set for drafts. You can set the date and it will not be overridden.
Parameters
- array|object $postarr: Post data. Arrays are expected to be escaped, objects are not.
Return values
returns:0 on failure, Post ID on success.
Source code
function wp_update_post($postarr = array()) { if ( is_object($postarr) ) { // non-escaped post was passed $postarr = get_object_vars($postarr); $postarr = add_magic_quotes($postarr); } // First, get all of the original fields $post = wp_get_single_post($postarr['ID'], ARRAY_A); // Escape data pulled from DB. $post = add_magic_quotes($post); // Passed post category list overwrites existing category list if not empty. if ( isset($postarr['post_category']) && is_array($postarr['post_category']) && 0 != count($postarr['post_category']) ) $post_cats = $postarr['post_category']; else $post_cats = $post['post_category']; // Drafts shouldn't be assigned a date unless explicitly done so by the user if ( isset( $post['post_status'] ) && in_array($post['post_status'], array('draft', 'pending', 'auto-draft')) && empty($postarr['edit_date']) && ('0000-00-00 00:00:00' == $post['post_date_gmt']) ) $clear_date = true; else $clear_date = false; // Merge old and new fields with new fields overwriting old ones. $postarr = array_merge($post, $postarr); $postarr['post_category'] = $post_cats; if ( $clear_date ) { $postarr['post_date'] = current_time('mysql'); $postarr['post_date_gmt'] = ''; } if ($postarr['post_type'] == 'attachment') return wp_insert_attachment($postarr); return wp_insert_post($postarr); }
4233
No comments yet... Be the first to leave a reply!