X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/8cc0f04ca22ffd9449495b3e0240603309c9932c..88550bc3400cc7c035ff590ecb007c7938041ded:/wp-admin/edit.php diff --git a/wp-admin/edit.php b/wp-admin/edit.php index ae5bee9c..b5c4cde6 100644 --- a/wp-admin/edit.php +++ b/wp-admin/edit.php @@ -1,303 +1,334 @@ post_type == 'attachment' ) { - if ( ! wp_delete_attachment($post_id_del) ) - wp_die( __('Error in deleting...') ); - } else { - if ( !wp_delete_post($post_id_del) ) - wp_die( __('Error in deleting...') ); - } - $deleted++; - } - } - break; - case 'edit': - if ( isset($_GET['post']) && isset($_GET['bulk_edit']) ) { - check_admin_referer('bulk-posts'); +if ( ! $post_type_object ) + wp_die( __( 'Invalid post type' ) ); - if ( -1 == $_GET['_status'] ) { - $_GET['post_status'] = null; - unset($_GET['_status'], $_GET['post_status']); - } else { - $_GET['post_status'] = $_GET['_status']; - } +if ( ! current_user_can( $post_type_object->cap->edit_posts ) ) + wp_die( __( 'Cheatin’ uh?' ), 403 ); - $done = bulk_edit_posts($_GET); - } - break; - } +$wp_list_table = _get_list_table('WP_Posts_List_Table'); +$pagenum = $wp_list_table->get_pagenum(); - $sendback = wp_get_referer(); - if ( strpos($sendback, 'post.php') !== false ) $sendback = admin_url('post-new.php'); - elseif ( strpos($sendback, 'attachments.php') !== false ) $sendback = admin_url('attachments.php'); - if ( isset($done) ) { - $done['updated'] = count( $done['updated'] ); - $done['skipped'] = count( $done['skipped'] ); - $done['locked'] = count( $done['locked'] ); - $sendback = add_query_arg( $done, $sendback ); +// Back-compat for viewing comments of an entry +foreach ( array( 'p', 'attachment_id', 'page_id' ) as $_redirect ) { + if ( ! empty( $_REQUEST[ $_redirect ] ) ) { + wp_redirect( admin_url( 'edit-comments.php?p=' . absint( $_REQUEST[ $_redirect ] ) ) ); + exit; } - if ( isset($deleted) ) - $sendback = add_query_arg('deleted', $deleted, $sendback); - wp_redirect($sendback); - exit(); -} elseif ( isset($_GET['_wp_http_referer']) && ! empty($_GET['_wp_http_referer']) ) { - wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) ); - exit; } +unset( $_redirect ); -if ( empty($title) ) - $title = __('Edit Posts'); -$parent_file = 'edit.php'; -wp_enqueue_script('inline-edit-post'); - -list($post_stati, $avail_post_stati) = wp_edit_posts_query(); - -require_once('admin-header.php'); - -if ( !isset( $_GET['paged'] ) ) - $_GET['paged'] = 1; +if ( 'post' != $post_type ) { + $parent_file = "edit.php?post_type=$post_type"; + $submenu_file = "edit.php?post_type=$post_type"; + $post_new_file = "post-new.php?post_type=$post_type"; +} else { + $parent_file = 'edit.php'; + $submenu_file = 'edit.php'; + $post_new_file = 'post-new.php'; +} -if ( empty($_GET['mode']) ) - $mode = 'list'; -else - $mode = esc_attr($_GET['mode']); ?> +$doaction = $wp_list_table->current_action(); + +if ( $doaction ) { + check_admin_referer('bulk-posts'); + + $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'locked', 'ids'), wp_get_referer() ); + if ( ! $sendback ) + $sendback = admin_url( $parent_file ); + $sendback = add_query_arg( 'paged', $pagenum, $sendback ); + if ( strpos($sendback, 'post.php') !== false ) + $sendback = admin_url($post_new_file); + + if ( 'delete_all' == $doaction ) { + // Prepare for deletion of all posts with a specified post status (i.e. Empty trash). + $post_status = preg_replace('/[^a-z0-9_-]+/i', '', $_REQUEST['post_status']); + // Validate the post status exists. + if ( get_post_status_object( $post_status ) ) { + $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type=%s AND post_status = %s", $post_type, $post_status ) ); + } + $doaction = 'delete'; + } elseif ( isset( $_REQUEST['media'] ) ) { + $post_ids = $_REQUEST['media']; + } elseif ( isset( $_REQUEST['ids'] ) ) { + $post_ids = explode( ',', $_REQUEST['ids'] ); + } elseif ( !empty( $_REQUEST['post'] ) ) { + $post_ids = array_map('intval', $_REQUEST['post']); + } -