This function returns an object that includes the screen’s ID, base, post type, and taxonomy, among other data points
<?php $screen = get_current_screen(); ?>
None
This function is defined on most admin pages, but not all. Thus there are cases where is_admin() will return true, but attempting to call get_current_screen() will result in a fatal error because it is not defined. One known example is wp-admin/customize.php.
The function returns null if called from the admin_init hook. It should be OK to use in a later hook such as current_screen.
Returns a WP_Screen object, or null if not applicable.
The fields returned are:
Example return value on a post edit page (as of WP version 3.3.1):
WP_Screen Object
(
[action] =>
[base] => post
[id] => post
[is_network] =>
[is_user] =>
[parent_base] => edit
[parent_file] => edit.php
[post_type] => post
[taxonomy] =>
...
(private fields)
)
This example shows how you would add contextual help to an admin page you've created with the add_options_page() function. Here, we assume that your admin page has a slug of 'my_admin_page' and exists under the Options tab.
The get_current_screen() function is used in this example.
<?php
add_action('admin_menu', 'my_admin_add_page');
function my_admin_add_page() {
global $my_admin_page;
$my_admin_page = add_options_page(__('My Admin Page', 'map'), __('My Admin Page', 'map'), 'manage_options', 'map', 'my_admin_page');
// Adds my_help_tab when my_admin_page loads
add_action('load-'.$my_admin_page, 'my_admin_add_help_tab');
}
function my_admin_add_help_tab () {
global $my_admin_page;
$screen = get_current_screen();
/*
* Check if current screen is My Admin Page
* Don't add help tab if it's not
*/
if ( $screen->id != $my_admin_page )
return;
// Add my_help_tab if current screen is My Admin Page
$screen->add_help_tab( array(
'id' => 'my_help_tab',
'title' => __('My Help Tab'),
'content' => '<p>' . __( 'Descriptive content that will show in My Help Tab-body goes here.' ) . '</p>',
) );
}
?>
Another Example:
<?php
add_action( 'current_screen', 'this_screen' );
function this_screen() {
$current_screen = get_current_screen();
if( $current_screen->id === "widgets" ) {
// Run some code, only on the admin widgets page
}
}
?>
get_current_screen() since Version 3.1 is located in wp-admin/includes/template.php.
Since Version 3.3 is moved to wp-admin/includes/screen.php.