Introduce set_current_screen(). Set current screen for inline edit ajax requests so post rows can be properly displayed. see #9674
git-svn-id: http://svn.automattic.com/wordpress/trunk@12797 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
92bf8d124c
commit
a731cbed8e
|
@ -1099,6 +1099,9 @@ case 'inline-save':
|
|||
die( __('You are not allowed to edit this post.') );
|
||||
}
|
||||
|
||||
if ( isset($_POST['screen']) )
|
||||
set_current_screen($_POST['screen']);
|
||||
|
||||
if ( $last = wp_check_post_lock( $post_ID ) ) {
|
||||
$last_user = get_userdata( $last );
|
||||
$last_user_name = $last_user ? $last_user->display_name : __( 'Someone' );
|
||||
|
|
|
@ -112,30 +112,7 @@ else
|
|||
$typenow = '';
|
||||
// @todo validate typenow against post types.
|
||||
|
||||
/**
|
||||
* Global object containing info about the current screen.
|
||||
*/
|
||||
$current_screen = $hook_suffix;
|
||||
$current_screen = str_replace('.php', '', $current_screen);
|
||||
$current_screen = str_replace('-new', '', $current_screen);
|
||||
$current_screen = str_replace('-add', '', $current_screen);
|
||||
$current_screen = array('id' => $current_screen, 'base' => $current_screen);
|
||||
$current_screen = (object) $current_screen;
|
||||
if ( 'edit' == $current_screen->id ) {
|
||||
if ( empty($typenow) )
|
||||
$typenow = 'post';
|
||||
$current_screen->id .= '-' . $typenow;
|
||||
$current_screen->post_type = $typenow;
|
||||
} elseif ( 'post' == $current_screen->id ) {
|
||||
if ( empty($typenow) )
|
||||
$typenow = 'post';
|
||||
$current_screen->id = $typenow;
|
||||
$current_screen->post_type = $typenow;
|
||||
} else {
|
||||
$typenow = '';
|
||||
}
|
||||
|
||||
$current_screen = apply_filters('current_screen', $current_screen);
|
||||
set_current_screen();
|
||||
|
||||
// Handle plugin admin pages.
|
||||
if ( isset($plugin_page) ) {
|
||||
|
|
|
@ -1265,7 +1265,8 @@ function inline_edit_row( $screen ) {
|
|||
?>
|
||||
<input accesskey="s" class="button-primary alignright" type="submit" name="bulk_edit" value="<?php echo esc_attr( $update_text ); ?>" />
|
||||
<?php } ?>
|
||||
<input type="hidden" name="post_view" value="<?php echo $m; ?>" />
|
||||
<input type="hidden" name="post_view" value="<?php echo esc_attr($m); ?>" />
|
||||
<input type="hidden" name="screen" value="<?php echo esc_attr($screen->id); ?>" />
|
||||
<br class="clear" />
|
||||
</p>
|
||||
</td></tr>
|
||||
|
@ -3827,4 +3828,47 @@ function compression_test() {
|
|||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the current screen object
|
||||
*
|
||||
* @since 3.0
|
||||
*
|
||||
* @uses $current_screen
|
||||
*
|
||||
* @param string $id Screen id, optional.
|
||||
*/
|
||||
function set_current_screen( $id = '' ) {
|
||||
global $current_screen, $hook_suffix, $typenow;
|
||||
|
||||
if ( empty($id) ) {
|
||||
$current_screen = $hook_suffix;
|
||||
$current_screen = str_replace('.php', '', $current_screen);
|
||||
$current_screen = str_replace('-new', '', $current_screen);
|
||||
$current_screen = str_replace('-add', '', $current_screen);
|
||||
$current_screen = array('id' => $current_screen, 'base' => $current_screen);
|
||||
} else {
|
||||
if ( false !== strpos($id, '-') )
|
||||
list( $id, $typenow ) = explode('-', $id, 2);
|
||||
$current_screen = array('id' => $id, 'base' => $id);
|
||||
}
|
||||
|
||||
$current_screen = (object) $current_screen;
|
||||
|
||||
if ( 'edit' == $current_screen->id ) {
|
||||
if ( empty($typenow) )
|
||||
$typenow = 'post';
|
||||
$current_screen->id .= '-' . $typenow;
|
||||
$current_screen->post_type = $typenow;
|
||||
} elseif ( 'post' == $current_screen->id ) {
|
||||
if ( empty($typenow) )
|
||||
$typenow = 'post';
|
||||
$current_screen->id = $typenow;
|
||||
$current_screen->post_type = $typenow;
|
||||
} else {
|
||||
$typenow = '';
|
||||
}
|
||||
|
||||
$current_screen = apply_filters('current_screen', $current_screen);
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
Loading…
Reference in New Issue