X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/f9001779751f83dc8a10e478bfecb4d8dd5f964c..b137f4ce021b4022c56f452c2eafa7abfcef0a7c:/wp-admin/includes/post.php diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php index 12cbaa0f..3f4d6f11 100644 --- a/wp-admin/includes/post.php +++ b/wp-admin/includes/post.php @@ -135,9 +135,13 @@ function edit_post( $post_data = null ) { if ( empty($post_data) ) $post_data = &$_POST; + // Clear out any data in internal vars. + unset( $post_data['filter'] ); + $post_ID = (int) $post_data['post_ID']; $post = get_post( $post_ID ); $post_data['post_type'] = $post->post_type; + $post_data['post_mime_type'] = $post->post_mime_type; $ptype = get_post_type_object($post_data['post_type']); if ( !current_user_can( $ptype->cap->edit_post, $post_ID ) ) { @@ -199,6 +203,8 @@ function edit_post( $post_data = null ) { continue; if ( $meta->post_id != $post_ID ) continue; + if ( is_protected_meta( $value['key'] ) ) + continue; update_meta( $key, $value['key'], $value['value'] ); } } @@ -209,6 +215,8 @@ function edit_post( $post_data = null ) { continue; if ( $meta->post_id != $post_ID ) continue; + if ( is_protected_meta( $meta->meta_key ) ) + continue; delete_meta( $key ); } } @@ -336,7 +344,8 @@ function bulk_edit_posts( $post_data = null ) { continue; } - $tax_names = get_object_taxonomies( get_post($post_ID) ); + $post = get_post( $post_ID ); + $tax_names = get_object_taxonomies( $post ); foreach ( $tax_names as $tax_name ) { $taxonomy_obj = get_taxonomy($tax_name); if ( isset( $tax_input[$tax_name]) && current_user_can( $taxonomy_obj->cap->assign_terms ) ) @@ -358,6 +367,9 @@ function bulk_edit_posts( $post_data = null ) { unset( $post_data['tax_input']['category'] ); } + $post_data['post_mime_type'] = $post->post_mime_type; + $post_data['guid'] = $post->guid; + $post_data['ID'] = $post_ID; $updated[] = wp_update_post( $post_data ); @@ -527,6 +539,11 @@ function wp_write_post() { return new WP_Error( 'edit_posts', __( 'You are not allowed to create posts or drafts on this site.' ) ); } + $_POST['post_mime_type'] = ''; + + // Clear out any data in internal vars. + unset( $_POST['filter'] ); + // Check for autosave collisions // Does this need to be updated? ~ Mark $temp_id = false; @@ -546,6 +563,15 @@ function wp_write_post() { } } + // Edit don't write if we have a post id. + if ( isset( $_POST['ID'] ) ) { + $_POST['post_ID'] = $_POST['ID']; + unset ( $_POST['ID'] ); + } + if ( isset( $_POST['post_ID'] ) ) { + return edit_post(); + } + $translated = _wp_translate_postdata( false ); if ( is_wp_error($translated) ) return $translated; @@ -632,8 +658,6 @@ function add_meta( $post_ID ) { global $wpdb; $post_ID = (int) $post_ID; - $protected = array( '_wp_attached_file', '_wp_attachment_metadata', '_wp_old_slug', '_wp_page_template' ); - $metakeyselect = isset($_POST['metakeyselect']) ? stripslashes( trim( $_POST['metakeyselect'] ) ) : ''; $metakeyinput = isset($_POST['metakeyinput']) ? stripslashes( trim( $_POST['metakeyinput'] ) ) : ''; $metavalue = isset($_POST['metavalue']) ? maybe_serialize( stripslashes_deep( $_POST['metavalue'] ) ) : ''; @@ -650,7 +674,7 @@ function add_meta( $post_ID ) { if ( $metakeyinput) $metakey = $metakeyinput; // default - if ( in_array($metakey, $protected) ) + if ( is_protected_meta( $metakey ) ) return false; wp_cache_delete($post_ID, 'post_meta'); @@ -756,11 +780,9 @@ function has_meta( $postid ) { function update_meta( $meta_id, $meta_key, $meta_value ) { global $wpdb; - $protected = array( '_wp_attached_file', '_wp_attachment_metadata', '_wp_old_slug', '_wp_page_template' ); - $meta_key = stripslashes($meta_key); - if ( in_array($meta_key, $protected) ) + if ( is_protected_meta( $meta_key ) ) return false; if ( '' === trim( $meta_value ) ) @@ -993,7 +1015,12 @@ function wp_edit_attachments_query( $q = false ) { $q['m'] = isset( $q['m'] ) ? (int) $q['m'] : 0; $q['cat'] = isset( $q['cat'] ) ? (int) $q['cat'] : 0; $q['post_type'] = 'attachment'; - $q['post_status'] = isset( $q['status'] ) && 'trash' == $q['status'] ? 'trash' : 'inherit'; + $post_type = get_post_type_object( 'attachment' ); + $states = 'inherit'; + if ( current_user_can( $post_type->cap->read_private_posts ) ) + $states .= ',private'; + + $q['post_status'] = isset( $q['status'] ) && 'trash' == $q['status'] ? 'trash' : $states; $media_per_page = (int) get_user_option( 'upload_per_page' ); if ( empty( $media_per_page ) || $media_per_page < 1 ) $media_per_page = 20;