+/**
+ * Redirect to previous page.
+ *
+ * @param int $page_ID Page ID.
+ */
+function redirect_page($page_ID) {
+ global $action;
+
+ $referredby = '';
+ if ( !empty($_POST['referredby']) ) {
+ $referredby = preg_replace('|https?://[^/]+|i', '', $_POST['referredby']);
+ $referredby = remove_query_arg('_wp_original_http_referer', $referredby);
+ }
+ $referer = preg_replace('|https?://[^/]+|i', '', wp_get_referer());
+
+ if ( 'post' == $_POST['originalaction'] && !empty($_POST['mode']) && 'sidebar' == $_POST['mode'] ) {
+ $location = 'sidebar.php?a=b';
+ } elseif ( isset($_POST['save']) || isset($_POST['publish']) ) {
+ $status = get_post_status( $page_ID );
+
+ if ( isset( $_POST['publish'] ) ) {
+ switch ( $status ) {
+ case 'pending':
+ $message = 6;
+ break;
+ case 'future':
+ $message = 7;
+ break;
+ default:
+ $message = 4;
+ }
+ } else {
+ $message = 'draft' == $status ? 8 : 1;
+ }
+
+ $location = add_query_arg( 'message', $message, get_edit_post_link( $page_ID, 'url' ) );
+ } elseif ( isset($_POST['addmeta']) ) {
+ $location = add_query_arg( 'message', 2, wp_get_referer() );
+ $location = explode('#', $location);
+ $location = $location[0] . '#postcustom';
+ } elseif ( isset($_POST['deletemeta']) ) {
+ $location = add_query_arg( 'message', 3, wp_get_referer() );
+ $location = explode('#', $location);
+ $location = $location[0] . '#postcustom';
+ } else {
+ $location = add_query_arg( 'message', 1, get_edit_post_link( $page_ID, 'url' ) );
+ }
+
+ wp_redirect( apply_filters( 'redirect_page_location', $location, $page_ID ) );