如何在不创建管理页面菜单的情况下获取页面的 slug 名称
Posted
技术标签:
【中文标题】如何在不创建管理页面菜单的情况下获取页面的 slug 名称【英文标题】:How to get a slug name for a page without creating an admin page menu 【发布时间】:2012-07-20 13:35:09 【问题描述】:我现在使用 add_submenu_page() 函数,但我不希望编辑页面出现在管理菜单中。
我想直接从列表(另一个页面)访问编辑页面。但我需要 slug 作为 hook_suffix。
我在 my-edit.php 中有
/* Set up the administration functionality. */
add_action( 'admin_menu', 'my_edit_setup' );
function my_edit_setup()
...
/* Add Edit Actionlist page. */
$myplugin->my_edit = add_submenu_page( 'myplugin', esc_attr__( 'Edit', 'myplugin' ), esc_attr__( 'Edit', 'myplugin' ), 7, 'my-edit', 'my_edit' );
...
在 admin.php 我有:
function my_admin_enqueue_style( $hook_suffix )
$pages = array(
'admin_page_projects',
'...my-edit'
);
if ( in_array( $hook_suffix, $pages ) )
wp_enqueue_style( 'myplugin-admin', trailingslashit( MYPLUGIN_URI ) . 'css/admin.css', false, '20110525', 'screen' );
您知道我需要 $hook_suffix,但如果不创建管理菜单项,我不知道如何获得它。
【问题讨论】:
【参考方案1】:如何创建不可见子菜单的示例(它附加到仪表板,index.php
)和对应的$hook_suffix
。
该页面可以通过http://example.com/wp-admin/index.php?page=sample_page_hidden
访问。
add_action( 'admin_menu', 'admin_menu_so_11593510' );
add_action( 'admin_enqueue_scripts', 'admin_enqueue_scripts_so_11593510' );
function admin_menu_so_11593510()
add_submenu_page(
null, // doesn't shows up in the menu, submenu is attached to "index.php"
'Test',
'Test',
'edit_pages',
'sample_page_hidden',
'menu_options_so_11593510'
);
function menu_options_so_11593510() echo 'Hello!';
function admin_enqueue_scripts_so_11593510( $hook_suffix )
if ( 'dashboard_page_sample_page_hidden' == $hook_suffix )
wp_enqueue_script( 'swfobject' );
【讨论】:
以上是关于如何在不创建管理页面菜单的情况下获取页面的 slug 名称的主要内容,如果未能解决你的问题,请参考以下文章
如何在不刷新页面加载的情况下保留 jQuery 和 Bootstrap 功能?
如何在不使用情节提要的情况下获取视图控制器的 NibName
如何在不提示用户提供 Facebook 权限的情况下在 iOS 应用程序中获取公共 Facebook 页面的提要?