时间:2024-03-30
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 } }
Copyright © 2019-2024 thinkphp.xyz