我在后端的管理菜单中添加了自定义菜单,而且我几乎总是有子页面,但是可以有第3级页面或“子子菜单页面”吗?
代码片段:
add_action('admin_menu',array(new mmr_menu((isset($_GET['page']) ? $_GET['page'] : "mmr")),'mk_menu'));
class mmr_menu{
public function mk_menu(){
add_menu_page('MMR', 'MMR', 'administrator', PLUGIN_PREFIX.'mmr', array(&$this,'get_page'), PLUGIN_DIR.'inc/images/logo.gif');
add_submenu_page(PLUGIN_PREFIX.'mmr', PLUGIN_PREFIX.'app_and_reg', 'Applications & Registrations', 'administrator', PLUGIN_PREFIX.'app_and_reg', array(&$this,"get_page"));
// Doesn't work
add_submenu_page(PLUGIN_PREFIX.'app_and_reg', PLUGIN_PREFIX.'payment_reports', 'Payments', 'administrator', PLUGIN_PREFIX.'payment_reports', array(&$this,"get_page"));
}
}
PLUGIN_PREFIX
和PLUGIN_DIR
是定义,而mmr_menu->get_page()
是我认为不必包含的公共方法。
答案 0 :(得分:3)
通常插件作者为第3级页面创建标签。这些未注册为单独的页面,但您可以添加查询arg以选择页面,并以这种方式链接到不同的选项卡。 例如:
<?php
function payment_reports() {
// first, lets print out the tabs ?>
<ul class="tabs">
<a href="[sub-page url]&tab=first">Tab 1</a>
<a href="[sub-page url]&tab=second">Tab 2</a>
<a href="[sub-page url]&tab=third">Tab 3</a>
</ul><?php
switch ($_GET['tab']) {
case 'second':
output_first_tab();
break;
case 'third':
output_first_tab();
break;
default:
output_first_tab();
}
}
?>
话虽如此,一些wordpress框架(链接piklist)支持内置的第三级选项卡