get_current_screen()

最后更新于:2021-11-26 09:03:24

get_current_screen()

Get the current screen object

响应

(GC_Screen|null) Current screen object or null when screen not defined.

源文件

文件: gc-admin/includes/screen.php

function get_current_screen() {
	global $current_screen;

	if ( ! isset( $current_screen ) ) {
		return null;
	}

	return $current_screen;
}
PAGE               $SCREEN_ID           FILE
-----------------  -------------------  -----------------------
Media Library      upload               upload.php
Comments           edit-comments        edit-comments.php
Tags               edit-post_tag        edit-tags.php
Plugins            plugins              plugins.php
Links              link-manager         link-manager.php
Users              users                users.php
Posts              edit-post            edit.php
Pages              edit-page            edit.php
Edit Site: Themes  site-themes-network  network/site-themes.php
Themes             themes-network       network/themes
Users              users-network        network/users
Edit Site: Users   site-users-network   network/site-users
Sites              sites-network        network/sites
<?php

add_action( 'current_screen', 'gcdocs_this_screen' );

/**
 * Run code on the admin widgets page
 */
function gcdocs_this_screen() {
    $currentScreen = get_current_screen();
    if( $currentScreen->id === "widgets" ) {
        // Run some code, only on the admin widgets page
    }
}

?>

/**
 * Redirect specific admin page
 */
add_action( 'current_screen', 'gcdocs_custom_redirect_admin_dashboard' );

function gcdocs_custom_redirect_admin_dashboard() {
    if ( is_admin() ) {
        $my_current_screen = get_current_screen();

        if ( isset( $my_current_screen->base ) && 'dashboard' === $my_current_screen->base ) {
            gc_redirect( admin_url().'?page=custom_dashboard' );
            exit();
        }
    }
}
GC_Screen Object
(
    [action] => 
    [base] => post
    [id] => post
    [is_network] => 
    [is_user] => 
    [parent_base] => edit
    [parent_file] => edit.php
    [post_type] => post
    [taxonomy] => 
    ...
    (private fields)
)
<?php 
add_action('admin_menu', 'gcdocs_admin_add_page');

/**
 * Add an admin page
 */
function gcdocs_admin_add_page() {
	global $gcdocs_admin_page;
	$gcdocs_admin_page = add_options_page(__('Wpdocs Admin Page', 'gcdocs_textdomain'),
		__('Wpdocs Admin Page', 'gcdocs_textdomain'),
		'manage_options', 'gcdocs_textdomain', 'gcdocs_admin_page');

	// Adds my_help_tab when my_admin_page loads
	add_action('load-'.$gcdocs_admin_page, 'gcdocs_admin_add_help_tab');
}

/**
 * Add a contextual help tab to the Wpdocs Admin Page
 */
function gcdocs_admin_add_help_tab () {
    global $gcdocs_admin_page;
    $screen = get_current_screen();

    /*
     * Check if current screen is Wpdocs Admin Page
     * Don't add help tab if it's not
     */
    if ( $screen->id != $gcdocs_admin_page )
        return;

    // Add my_help_tab if current screen is My Admin Page
    $screen->add_help_tab( array(
        'id' => 'gcdocs_help_tab',
        'title' => __('Wpdocs Help Tab'),
        'content' => '<p>'
		. __( 'Descriptive content that will show in Wpdocs Help Tab body goes here.', 'gcdocs_textdomain' )
		. '</p>',
    ) );
}
?>