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
.