Changeset 17276 for trunk/wp-admin/includes/class-wp-posts-list-table.php
- Timestamp:
- 01/13/2011 12:34:18 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/includes/class-wp-posts-list-table.php
r17195 r17276 1014 1014 <?php 1015 1015 } 1016 1017 function do_bulk_actions( $doaction = null ) { 1018 if ( null === $doaction ) 1019 $doaction = $this->current_action(); 1020 1021 if ( ! $doaction ) 1022 return; 1023 1024 check_admin_referer('bulk-posts'); 1025 1026 $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() ); 1027 if ( strpos($sendback, 'post.php') !== false ) 1028 $sendback = admin_url($post_new_file); 1029 1030 if ( 'delete_all' == $doaction ) { 1031 $post_status = preg_replace('/[^a-z0-9_-]+/i', '', $_REQUEST['post_status']); 1032 if ( get_post_status_object($post_status) ) // Check the post status exists first 1033 $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type=%s AND post_status = %s", $post_type, $post_status ) ); 1034 $doaction = 'delete'; 1035 } elseif ( isset( $_REQUEST['media'] ) ) { 1036 $post_ids = $_REQUEST['media']; 1037 } elseif ( isset( $_REQUEST['ids'] ) ) { 1038 $post_ids = explode( ',', $_REQUEST['ids'] ); 1039 } elseif ( !empty( $_REQUEST['post'] ) ) { 1040 $post_ids = array_map('intval', $_REQUEST['post']); 1041 } 1042 1043 if ( !isset( $post_ids ) ) { 1044 wp_redirect( admin_url("edit.php?post_type=$post_type") ); 1045 exit; 1046 } 1047 1048 switch ( $doaction ) { 1049 case 'trash': 1050 $trashed = 0; 1051 foreach( (array) $post_ids as $post_id ) { 1052 if ( !current_user_can($post_type_object->cap->delete_post, $post_id) ) 1053 wp_die( __('You are not allowed to move this item to the Trash.') ); 1054 1055 if ( !wp_trash_post($post_id) ) 1056 wp_die( __('Error in moving to Trash.') ); 1057 1058 $trashed++; 1059 } 1060 $sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids) ), $sendback ); 1061 break; 1062 case 'untrash': 1063 $untrashed = 0; 1064 foreach( (array) $post_ids as $post_id ) { 1065 if ( !current_user_can($post_type_object->cap->delete_post, $post_id) ) 1066 wp_die( __('You are not allowed to restore this item from the Trash.') ); 1067 1068 if ( !wp_untrash_post($post_id) ) 1069 wp_die( __('Error in restoring from Trash.') ); 1070 1071 $untrashed++; 1072 } 1073 $sendback = add_query_arg('untrashed', $untrashed, $sendback); 1074 break; 1075 case 'delete': 1076 $deleted = 0; 1077 foreach( (array) $post_ids as $post_id ) { 1078 $post_del = & get_post($post_id); 1079 1080 if ( !current_user_can($post_type_object->cap->delete_post, $post_id) ) 1081 wp_die( __('You are not allowed to delete this item.') ); 1082 1083 if ( $post_del->post_type == 'attachment' ) { 1084 if ( ! wp_delete_attachment($post_id) ) 1085 wp_die( __('Error in deleting...') ); 1086 } else { 1087 if ( !wp_delete_post($post_id) ) 1088 wp_die( __('Error in deleting...') ); 1089 } 1090 $deleted++; 1091 } 1092 $sendback = add_query_arg('deleted', $deleted, $sendback); 1093 break; 1094 case 'edit': 1095 $done = bulk_edit_posts($_REQUEST); 1096 1097 if ( is_array($done) ) { 1098 $done['updated'] = count( $done['updated'] ); 1099 $done['skipped'] = count( $done['skipped'] ); 1100 $done['locked'] = count( $done['locked'] ); 1101 $sendback = add_query_arg( $done, $sendback ); 1102 } 1103 break; 1104 default : 1105 $sendback = apply_filters( "bulk_actions-posts-$doaction", $sendback, $doaction ); 1106 break; 1107 } 1108 1109 $sendback = remove_query_arg( array( 'action', 'action2', 'tags_input', 'post_author', 'comment_status', 'ping_status', '_status', 'post', 'bulk_edit', 'post_view' ), $sendback ); 1110 $sendback = $this->add_query_args( $sendback ); 1111 wp_redirect( $sendback ); 1112 exit(); 1113 } 1114 1016 1115 } 1017 1116
Note: See TracChangeset
for help on using the changeset viewer.