16 */ |
16 */ |
17 global $post_type, $post_type_object, $post; |
17 global $post_type, $post_type_object, $post; |
18 |
18 |
19 if ( ! isset( $_GET['post_type'] ) ) { |
19 if ( ! isset( $_GET['post_type'] ) ) { |
20 $post_type = 'post'; |
20 $post_type = 'post'; |
21 } elseif ( in_array( $_GET['post_type'], get_post_types( array('show_ui' => true ) ) ) ) { |
21 } elseif ( in_array( $_GET['post_type'], get_post_types( array( 'show_ui' => true ) ) ) ) { |
22 $post_type = $_GET['post_type']; |
22 $post_type = $_GET['post_type']; |
23 } else { |
23 } else { |
24 wp_die( __( 'Invalid post type.' ) ); |
24 wp_die( __( 'Invalid post type.' ) ); |
25 } |
25 } |
26 $post_type_object = get_post_type_object( $post_type ); |
26 $post_type_object = get_post_type_object( $post_type ); |
27 |
27 |
28 if ( 'post' == $post_type ) { |
28 if ( 'post' == $post_type ) { |
29 $parent_file = 'edit.php'; |
29 $parent_file = 'edit.php'; |
30 $submenu_file = 'post-new.php'; |
30 $submenu_file = 'post-new.php'; |
31 } elseif ( 'attachment' == $post_type ) { |
31 } elseif ( 'attachment' == $post_type ) { |
32 if ( wp_redirect( admin_url( 'media-new.php' ) ) ) |
32 if ( wp_redirect( admin_url( 'media-new.php' ) ) ) { |
33 exit; |
33 exit; |
|
34 } |
34 } else { |
35 } else { |
35 $submenu_file = "post-new.php?post_type=$post_type"; |
36 $submenu_file = "post-new.php?post_type=$post_type"; |
36 if ( isset( $post_type_object ) && $post_type_object->show_in_menu && $post_type_object->show_in_menu !== true ) { |
37 if ( isset( $post_type_object ) && $post_type_object->show_in_menu && $post_type_object->show_in_menu !== true ) { |
37 $parent_file = $post_type_object->show_in_menu; |
38 $parent_file = $post_type_object->show_in_menu; |
38 // What if there isn't a post-new.php item for this post type? |
39 // What if there isn't a post-new.php item for this post type? |
39 if ( ! isset( $_registered_pages[ get_plugin_page_hookname( "post-new.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) { |
40 if ( ! isset( $_registered_pages[ get_plugin_page_hookname( "post-new.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) { |
40 if ( isset( $_registered_pages[ get_plugin_page_hookname( "edit.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) { |
41 if ( isset( $_registered_pages[ get_plugin_page_hookname( "edit.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) { |
41 // Fall back to edit.php for that post type, if it exists |
42 // Fall back to edit.php for that post type, if it exists |
42 $submenu_file = "edit.php?post_type=$post_type"; |
43 $submenu_file = "edit.php?post_type=$post_type"; |
43 } else { |
44 } else { |
44 // Otherwise, give up and highlight the parent |
45 // Otherwise, give up and highlight the parent |
45 $submenu_file = $parent_file; |
46 $submenu_file = $parent_file; |
60 '<p>' . __( 'Sorry, you are not allowed to create posts as this user.' ) . '</p>', |
61 '<p>' . __( 'Sorry, you are not allowed to create posts as this user.' ) . '</p>', |
61 403 |
62 403 |
62 ); |
63 ); |
63 } |
64 } |
64 |
65 |
65 // Schedule auto-draft cleanup |
66 $post = get_default_post_to_edit( $post_type, true ); |
66 if ( ! wp_next_scheduled( 'wp_scheduled_auto_draft_delete' ) ) { |
|
67 wp_schedule_event( time(), 'daily', 'wp_scheduled_auto_draft_delete' ); |
|
68 } |
|
69 |
|
70 $post = get_default_post_to_edit( $post_type, true ); |
|
71 $post_ID = $post->ID; |
67 $post_ID = $post->ID; |
72 |
68 |
73 /** This filter is documented in wp-admin/post.php */ |
69 /** This filter is documented in wp-admin/post.php */ |
74 if ( apply_filters( 'replace_editor', false, $post ) !== true ) { |
70 if ( apply_filters( 'replace_editor', false, $post ) !== true ) { |
75 wp_enqueue_script( 'autosave' ); |
71 if ( use_block_editor_for_post( $post ) ) { |
76 include( ABSPATH . 'wp-admin/edit-form-advanced.php' ); |
72 include( ABSPATH . 'wp-admin/edit-form-blocks.php' ); |
|
73 } else { |
|
74 wp_enqueue_script( 'autosave' ); |
|
75 include( ABSPATH . 'wp-admin/edit-form-advanced.php' ); |
|
76 } |
|
77 } else { |
|
78 // Flag that we're not loading the block editor. |
|
79 $current_screen = get_current_screen(); |
|
80 $current_screen->is_block_editor( false ); |
77 } |
81 } |
78 |
82 |
79 include( ABSPATH . 'wp-admin/admin-footer.php' ); |
83 include( ABSPATH . 'wp-admin/admin-footer.php' ); |