将管理子菜单项移动到顶级位置

时间:2012-01-06 作者:nine.am

我正在尝试重新安排管理菜单,以便删除子菜单。

基本上,我首先删除所有我不想要的子菜单(例如“主页”按钮下的子菜单,或“帖子”按钮下的子菜单),然后向$菜单数组添加新条目。

我的代码如下所示(例如更新条目,但我也对类别和链接类别进行了更新):

function setAdminMenu (){
/* unsetting the home subemnus */
unset($submenu[\'index.php\'];

/* adding the update link at a top-level position */
$menu[3] = array( __(\'Updates\'), \'read\', \'update-core.php\', \'\', \'menu-top menu-top-first\', \'menu-maj\', \'div\' );

}
它似乎工作得很好,只是子菜单仍在起作用:当一个人单击“更新”菜单按钮时,按钮不会保持活动状态,而是另一个按钮(“工具”按钮及其子菜单,我保留了),或者当一个人单击“类别”菜单时,显示的是单击的“帖子”条目。

这很奇怪,因为我认为我为菜单项提供了适当的类,但当我查看源代码时,我发现是按钮的“父”按钮获得了。当前类(管理“单击的”外观)。

如何解决问题?有可能吗?我想这可能是一些管理页面的工作方式?

EDIT

您好,Wyck,谢谢您的回答,但实际上我的问题不是从菜单和子菜单中添加或删除某些项目,而是在完成后的方式。

更准确地说,我删除了所有子菜单,提取了这些子菜单上的一些元素,并将它们放在主菜单中。例如,我从“dashboard”(index.php)子菜单中删除了“updates”链接,并将其作为顶级菜单。链接类别和帖子类别也是如此。

事情是这样的,我有我想要的菜单(没有子菜单),但当我点击子菜单上的元素时,它们的按钮不是一直在顶层的按钮,而是像在子菜单中一样。

更清楚地说,我定义了按钮的“点击”(和悬停等)状态:它们会改变颜色。当我在新配置中单击“更新”按钮(或在“类别”或“链接类别”上)时,按钮没有处于单击状态,而是处于子菜单中时与之相关的按钮处于单击状态,尽管它会转到相应的页面。

我看到当你点击菜单中的一个按钮时,wordpress会添加一个。当前类,它适用于原始顶级菜单中的所有元素,但不适用于通常位于子菜单上的元素,我不知道如何通过它(可能使用js?)

1 个回复
SO网友:Wyck

要做到这一点并不容易,我最近在WPSE上用一个代码示例回答了这个问题,但我找不到它。

基本上,您要做的子菜单项排序是将它们全部删除,然后按您想要的顺序添加它们。

因此,首先您有一个删除它们的功能:

//plugin sub-menu editor as the first example
remove_submenu_page( \'plugins.php\', \'plugin-editor.php\' ); 
remove_submenu_page( \'next one\' );  
remove_submenu_page( \'next one\' );  
然后使用add_submenu_page 然后按您想要的顺序添加它们。http://codex.wordpress.org/Function_Reference/add_submenu_page

这似乎是一种惯例,另一种选择是像这样古怪的事情,Order Admin sub-menu items?

这适用于子菜单项,对于顶级项,请使用remove_menu_page

Edit

Index.php 不是子菜单项,它是顶级项,因此您的标题很混乱!,要订购顶级项目,请使用此答案,https://wordpress.stackexchange.com/a/1568/1509

结束

相关推荐