get_current_screen 获取仪表盘中当前页面信息

文 / @WordPress主题

get_current_screen()函数

get_current_screen()函数返回一个包含当前页面ID的对象,如:base、posttype或taxonomy等其他类型的名称。

使用方法

$screen=get_current_screen();

使用限制

该函数在很多管理页面中都有定义,但并不是所有页面,这会导致有时候 is_admin()will返回真,而调用 get_current_screen() 却遇到了致命错误,因为这个函数在该也发没有定义,一个已知的页面是wp-admin/customize.php。

我们应该在 admin_init 初始化之后调用,否则将返回 null。

函数描述

返回一个 WP_Screen对象,调用不当是返回 null。

参数 数据类型 描述
ID 字符串 当前屏幕的唯一ID
action 字符串 关联到此屏幕的操作,「*-new.php」页面为「add」,其他页面为空
base 字符串 屏幕的基本类型。如对于页面「post-new.php」的base为「post」
parent_base 字符串 父级菜单。这是通过删除查询字符串和.php扩展名从$PARENT_FILE获取的。例如,‘edit.php?post_type=page’和‘edit.php?post_type=post’的parent_file值的parent_base为‘edit’
post_type 字符串 与屏幕关联的文章类型(如果有)。例如,“edit.php?post_type=page”屏幕的文章类型为“page”。
taxonomy 字符串 屏幕关联的分类法(如果有)。例如,“edit-tags.php?taxonomy=category”屏幕的分类法为“category”

下面是文章编辑页面的返回值:

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]
)

使用示例

添加帮助选项卡到某个页面

下面的示例说明如何将上下文帮助添加到使用add_options_page()函数创建的管理页面。在这里,我们假设您的管理页面上有一个“my_admin_page”,并且位于“选项”标签下。

add_action('admin_menu','my_admin_add_page');
function my_admin_add_page(){
    global $my_admin_page;
    $my_admin_page=add_options_page(__('我的页面','map'),__('我的页面','map'),'manage_options','map','my_admin_page');

    //my_admin_page加载时添加my_help_tab
    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();

    //检查当前屏幕是否为MyAdmin页面,如果不是,不添加帮助选项卡
    if($screen->id!=$my_admin_page){
        return;
    }

    //如果当前屏幕是MyAdmin页面,添加my_help_tab帮助选项卡
    $screen->add_help_tab(array(
        'id'    =>'my_help_tab',
        'title' =>__('帮助'),
        'content'=>'<p>'.__('帮助选项卡信息').'</p>',
    ));
}

仅在后台小工具页面运行一些代码

add_action('current_screen','thisScreen');

function thisScreen(){
    $currentScreen=get_current_screen();
    if($currentScreen->id==="widgets"){
        //Run some code, only on the admin widgets page
    }
}
添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。