WordPress.org

Make WordPress Core

Ticket #18197: 18197-add-whole-admin-menu.patch

File 18197-add-whole-admin-menu.patch, 6.8 KB (added by azaozz, 4 years ago)
  • wp-includes/admin-bar.php

     
    271271                        'href'   => admin_url(), 
    272272                ) ); 
    273273 
    274                 // Add the appearance menu. 
    275                 wp_admin_bar_appearance_menu( $wp_admin_bar ); 
     274                // Add the whole admin menu. 
     275                wp_admin_bar_adminmenu_menu( $wp_admin_bar ); 
    276276        } 
    277277} 
    278278 
     
    592592} 
    593593 
    594594/** 
     595 * Add the whole default admin menu. 
     596 * 
     597 * @since 3.3.0 
     598 */ 
     599function wp_admin_bar_adminmenu_menu( $wp_admin_bar ) { 
     600 
     601        $menu = $submenu = array(); 
     602 
     603        $menu[5] = array( __('Posts'), 'edit_posts', 'edit.php', 'menu-posts' ); 
     604                $submenu['edit.php'][5]  = array( __('All Posts'), 'edit_posts', 'edit.php' ); 
     605                /* translators: add new post */ 
     606                $submenu['edit.php'][10]  = array( _x('Add New', 'post'), 'edit_posts', 'post-new.php' ); 
     607 
     608                $i = 15; 
     609                foreach ( get_taxonomies( array(), 'objects' ) as $tax ) { 
     610                        if ( ! $tax->show_ui || ! in_array('post', (array) $tax->object_type, true) ) 
     611                                continue; 
     612 
     613                        $submenu['edit.php'][$i++] = array( esc_attr( $tax->labels->menu_name ), $tax->cap->manage_terms, 'edit-tags.php?taxonomy=' . $tax->name ); 
     614                } 
     615                unset($tax); 
     616 
     617        $menu[10] = array( __('Media'), 'upload_files', 'upload.php', 'menu-media' ); 
     618                $submenu['upload.php'][5] = array( __('Library'), 'upload_files', 'upload.php'); 
     619                /* translators: add new file */ 
     620                $submenu['upload.php'][10] = array( _x('Add New', 'file'), 'upload_files', 'media-new.php'); 
     621 
     622        $menu[15] = array( __('Links'), 'manage_links', 'link-manager.php', 'menu-links' ); 
     623                $submenu['link-manager.php'][5] = array( __('All Links'), 'manage_links', 'link-manager.php' ); 
     624                /* translators: add new links */ 
     625                $submenu['link-manager.php'][10] = array( _x('Add New', 'link'), 'manage_links', 'link-add.php' ); 
     626                $submenu['link-manager.php'][15] = array( __('Link Categories'), 'manage_categories', 'edit-tags.php?taxonomy=link_category' ); 
     627 
     628        $menu[20] = array( __('Pages'), 'edit_pages', 'edit.php?post_type=page', 'menu-pages' ); 
     629                $submenu['edit.php?post_type=page'][5] = array( __('All Pages'), 'edit_pages', 'edit.php?post_type=page' ); 
     630                /* translators: add new page */ 
     631                $submenu['edit.php?post_type=page'][10] = array( _x('Add New', 'page'), 'edit_pages', 'post-new.php?post_type=page' ); 
     632                $i = 15; 
     633                foreach ( get_taxonomies( array(), 'objects' ) as $tax ) { 
     634                        if ( ! $tax->show_ui || ! in_array('page', (array) $tax->object_type, true) ) 
     635                                continue; 
     636 
     637                        $submenu['edit.php?post_type=page'][$i++] = array( esc_attr( $tax->labels->menu_name ), $tax->cap->manage_terms, 'edit-tags.php?taxonomy=' . $tax->name . '&post_type=page' ); 
     638                } 
     639                unset($tax); 
     640 
     641        $menu[25] = array( __('Comments'), 'edit_posts', 'edit-comments.php', 'menu-comments' ); 
     642 
     643        //$submenu[ 'edit-comments.php' ][0] = array( __('All Comments'), 'edit_posts', 'edit-comments.php' ); 
     644 
     645        if ( current_user_can( 'switch_themes') ) { // special case, calls wp_admin_bar_appearance_menu() 
     646                $menu[60] = array( '', '', '', 'menu-appearance' ); 
     647        } 
     648 
     649        $menu[65] = array( __('Plugins'), 'activate_plugins', 'plugins.php', 'menu-plugins' ); 
     650 
     651        $submenu['plugins.php'][5]  = array( __('Installed Plugins'), 'activate_plugins', 'plugins.php' ); 
     652 
     653        if ( ! is_multisite() ) { 
     654                /* translators: add new plugin */ 
     655                $submenu['plugins.php'][10] = array( _x('Add New', 'plugin'), 'install_plugins', 'plugin-install.php' ); 
     656        } 
     657 
     658        if ( current_user_can('list_users') ) 
     659                $menu[70] = array( __('Users'), 'list_users', 'users.php', 'menu-users' ); 
     660        else 
     661                $menu[70] = array( __('Profile'), 'read', 'profile.php', 'menu-users' ); 
     662 
     663        if ( current_user_can('list_users') ) { 
     664                $_wp_real_parent_file['profile.php'] = 'users.php'; // Back-compat for plugins adding submenus to profile.php. 
     665                $submenu['users.php'][5] = array(__('All Users'), 'list_users', 'users.php'); 
     666                if ( current_user_can('create_users') ) 
     667                        $submenu['users.php'][10] = array(_x('Add New', 'user'), 'create_users', 'user-new.php'); 
     668                else 
     669                        $submenu['users.php'][10] = array(_x('Add New', 'user'), 'promote_users', 'user-new.php'); 
     670 
     671                $submenu['users.php'][15] = array(__('Your Profile'), 'read', 'profile.php'); 
     672        } else { 
     673                $_wp_real_parent_file['users.php'] = 'profile.php'; 
     674                $submenu['profile.php'][5] = array(__('Your Profile'), 'read', 'profile.php'); 
     675                if ( current_user_can('create_users') ) 
     676                        $submenu['profile.php'][10] = array(__('Add New User'), 'create_users', 'user-new.php'); 
     677                else 
     678                        $submenu['profile.php'][10] = array(__('Add New User'), 'promote_users', 'user-new.php'); 
     679        } 
     680 
     681        $menu[75] = array( __('Tools'), 'edit_posts', 'tools.php', 'menu-tools' ); 
     682                $submenu['tools.php'][5] = array( __('Available Tools'), 'edit_posts', 'tools.php' ); 
     683                $submenu['tools.php'][10] = array( __('Import'), 'import', 'import.php' ); 
     684                $submenu['tools.php'][15] = array( __('Export'), 'export', 'export.php' ); 
     685                if ( is_multisite() && !is_main_site() ) 
     686                        $submenu['tools.php'][25] = array( __('Delete Site'), 'manage_options', 'ms-delete-site.php' ); 
     687                if ( ! is_multisite() && defined('WP_ALLOW_MULTISITE') && WP_ALLOW_MULTISITE ) 
     688                        $submenu['tools.php'][50] = array(__('Network Setup'), 'manage_options', 'network.php'); 
     689 
     690        $menu[80] = array( __('Settings'), 'manage_options', 'options-general.php', 'menu-settings' ); 
     691                $submenu['options-general.php'][10] = array(_x('General', 'settings screen'), 'manage_options', 'options-general.php'); 
     692                $submenu['options-general.php'][15] = array(__('Writing'), 'manage_options', 'options-writing.php'); 
     693                $submenu['options-general.php'][20] = array(__('Reading'), 'manage_options', 'options-reading.php'); 
     694                $submenu['options-general.php'][25] = array(__('Discussion'), 'manage_options', 'options-discussion.php'); 
     695                $submenu['options-general.php'][30] = array(__('Media'), 'manage_options', 'options-media.php'); 
     696                $submenu['options-general.php'][35] = array(__('Privacy'), 'manage_options', 'options-privacy.php'); 
     697                $submenu['options-general.php'][40] = array(__('Permalinks'), 'manage_options', 'options-permalink.php'); 
     698 
     699        foreach ( $menu as $item ) { 
     700                if ( 'menu-appearance' == $item[3] ) { 
     701                        wp_admin_bar_appearance_menu( $wp_admin_bar ); 
     702                        continue; 
     703                } 
     704 
     705                if ( !current_user_can($item[1]) ) 
     706                        continue; 
     707 
     708                $wp_admin_bar->add_menu( array('id' => $item[3], 'title' => $item[0], 'href' => admin_url($item[2]), 'parent' => 'site-name') ); 
     709 
     710                if ( !empty($submenu[$item[2]]) ) { 
     711                        foreach ( $submenu[$item[2]] as $name => $value ) { 
     712                                if ( !current_user_can($value[1]) ) 
     713                                        continue; 
     714 
     715                                $id = preg_replace( '/[^a-z0-9-]+/', '-', str_replace('.php', '', "{$item[3]}-$name") ); 
     716                                $wp_admin_bar->add_menu( array( 'parent' => $item[3], 'id' => $id, 'title' => $value[0], 'href' => admin_url($value[2]) ) ); 
     717                        } 
     718                } 
     719        } 
     720} 
     721 
     722/** 
    595723 * Provide an update link if theme/plugin/core updates are available. 
    596724 * 
    597725 * @since 3.1.0