如果插件很复杂,则自定义管理菜单顺序失败

时间:2021-11-09 作者:EdA

添加了以下内容的页面时,我无法重新排序WP Admin菜单项add_menu_page 有复杂的鼻涕虫。至少我认为这是问题所在。。。

首先,我创建自定义菜单项,它按预期工作:

function sma_simplify_admin_ui() {
    global $user_ID;
    if ( $user_ID != 1 ) {
        add_menu_page( \'Menu\', \'Menu\', \'edit_posts\', \'nav-menus.php?action=edit&menu=16\', \'\', \'dashicons-menu\' );
        add_menu_page( \'Memberships\', \'Memberships\', \'edit_posts\', \'edit.php?post_type=wc_user_membership\', \'\', \'dashicons-groups\' );
    }
}
add_action( \'admin_init\', \'sma_simplify_admin_ui\' );
新项目cannot 重新排序。如果我把它们产生时给出的精确的弹头,menu_order (和custom_menu_order) 简单地忽略它们,我的新项目总是在菜单的底部。

function sma_reorder_admin_ui($menu_ord) {  
    if (!$menu_ord) return true;
    return array(
        \'nav-menus.php?action=edit&menu=16\',
        \'edit.php?post_type=wc_user_membership\',
        /* truncated for clarity, there is more stuff */
    );
}  
add_filter( \'custom_menu_order\', \'sma_reorder_admin_ui\' ); 
add_filter( \'menu_order\', \'sma_reorder_admin_ui\' );
当我创建它们时设置优先级也不允许我对它们重新排序,这真的很奇怪。。。

我在推测custom_menu_order &;menu_order 不是我要给它什么,但我不知道该给它什么。我也试过了我在vardump时得到的每一个弹头/键$GLOBAL[\'menu\'].

请帮我解决如何重新排列菜单项!

1 个回复
SO网友:EdA

我通过更改创建菜单项的操作修复了此问题admin_initadmin_menu. 前者来得太早,我想这是在制造冲突。现在,我可以通过引用项目的原始段塞来重新排序项目。

以备将来参考,并在对他人有帮助的情况下,the WP documentation for add_menu_page 特别建议挂接到admin_menu.