所有用户角色的自定义管理菜单顺序

时间:2016-12-15 作者:mmorris1

我通过以下方式重新排列了“管理”菜单项的顺序:

function custom_menu_order($menu_ord) {
if (!$menu_ord) return true;

return array(
    \'index.php\', // Dashboard
    \'edit.php?post_type=page\', // Pages
    \'edit.php?post_type=sp_faq\', // FAQs
    \'gf_edit_forms\', // Forms
    \'woocommerce\', // Woocommerce
    \'edit.php?post_type=product\', //Products
    \'edit.php\', // Posts/News
    \'edit.php?post_type=event\', // Events
    \'upload.php\', // Media
    \'themes.php\', // Appearance
    \'plugins.php\', // Plugins
    \'users.php\', // Users
    \'tools.php\', // Tools
    \'options-general.php\', // Settings
);
}
add_filter(\'custom_menu_order\', \'custom_menu_order\'); // Activate custom_menu_order
add_filter(\'menu_order\', \'custom_menu_order\');
这对管理员用户角色非常有效,但对其他角色不起作用。如何将此自定义菜单顺序扩展到所有用户角色?

1 个回复
SO网友:Kidcompassion

您没有指定是否要使所有用户角色都可以使用所有这些项目(这意味着必须添加自定义功能),因此我假设您只希望能够按用户自定义菜单顺序。

我的方法是让当前登录的用户可以使用所有角色,然后通过开关运行每个角色以获得适当的顺序。

function my_custom_menu_order( $menu_ord) {
$curr_id = get_current_user_id();
$user = new WP_User( $curr_id );
if ( !empty( $user->roles ) && is_array( $user->roles ) ) {
    foreach ( $user->roles as $role ){
        switch($role){
            case \'administrator\':
                if (!$menu_ord) return true;
                return array(
                \'options-general.php\', // Settings
                \'index.php\', // Dashboard
                \'edit.php?post_type=page\', // Pages
                \'edit.php?post_type=faq\', // FAQs
                \'options-general.php\', // Settings
                \'gf_edit_forms\', // Forms
                \'woocommerce\', // Woocommerce
                \'edit.php?post_type=product\', //Products
                \'edit.php\', // Posts/News
                \'edit.php?post_type=event\', // Events
                \'upload.php\', // Media
                \'themes.php\', // Appearance
                \'plugins.php\', // Plugins
                \'users.php\', // Users
                \'tools.php\', // Tools   
                );
            break;
            case \'editor\':
                if (!$menu_ord) return true;
                return array(
                \'edit.php?post_type=event\', // Events
                \'index.php\', // Dashboard
                \'edit.php?post_type=page\', // Pages
                \'edit.php?post_type=faq\', // FAQs
                \'options-general.php\', // Settings
                \'gf_edit_forms\', // Forms
                \'woocommerce\', // Woocommerce
                \'edit.php?post_type=product\', //Products
                \'edit.php\', // Posts/News
                \'upload.php\', // Media
                \'themes.php\', // Appearance
                \'plugins.php\', // Plugins
                \'users.php\', // Users
                \'options-general.php\', // Settings
                \'tools.php\', // Tools   
                );
            break;

            default:
            break;
            }
       }
}

    add_filter(\'custom_menu_order\', \'my_custom_menu_order\');
    add_filter(\'menu_order\', \'my_custom_menu_order\');

相关推荐