如何获取具体的页面屏幕ID

时间:2016-02-19 作者:nonsensecreativity

是否可以获取特定页面的屏幕id?我在google上搜索过,找不到任何与特定页面屏幕ID相关的内容

我没有查找get\\u current\\u screen()ID或全局$current\\u screen变量。我要找的是在我不查看页面时获取特定页面的ID。

例如:

我动态创建这样的页面

$hook = add_menu_page( \'Title\', \'Menu Title\', \'manage_options\', \'my-custom-page-key\', callback );

$hook = add_options_page( \'Title\', \'Menu Title\', \'manage_options\', \'my-custom-page-key\', callback );
我不知道将注册哪个页面,因为它基于设置值。只能获取“我的自定义页面键”,我需要获取页面外部的$hook值,可能是作为全局变量(最后的手段)。

所以基本上我在找这样的东西

get_screen_id( \'my-custom-page-key\' );
这将返回值likes

toplevel_page_my-custom-page-keysettings_page_my-custom-page-key, 等

1 个回复
最合适的回答,由SO网友:Milo 整理而成

我认为如果不访问global,这是不可能的。通过使用全局$_parent_pages 使用函数get_plugin_page_hookname:

function nackle_get_screen_id( $slug ){
    global $_parent_pages;
    $parent = array_key_exists( $slug, $_parent_pages ) ? $_parent_pages[$slug] : \'\';
    return get_plugin_page_hookname( $slug, $parent );
}
用法示例:

echo nackle_get_screen_id( \'my-custom-page-key\' );
编辑-可在当天或之后使用admin_init, 当菜单被解析时$_parent_pages 已填充。