Edit File by line
/home/zeestwma/redstone.../wp-admin
File: menu.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Build Administration Menu.
[2] Fix | Delete
*
[3] Fix | Delete
* @package WordPress
[4] Fix | Delete
* @subpackage Administration
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
// Don't load directly.
[8] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[9] Fix | Delete
die( '-1' );
[10] Fix | Delete
}
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* Constructs the admin menu.
[14] Fix | Delete
*
[15] Fix | Delete
* The elements in the array are:
[16] Fix | Delete
* 0: Menu item name.
[17] Fix | Delete
* 1: Minimum level or capability required.
[18] Fix | Delete
* 2: The URL of the item's file.
[19] Fix | Delete
* 3: Page title.
[20] Fix | Delete
* 4: Classes.
[21] Fix | Delete
* 5: ID.
[22] Fix | Delete
* 6: Icon for top level menu.
[23] Fix | Delete
*
[24] Fix | Delete
* @global array $menu
[25] Fix | Delete
*/
[26] Fix | Delete
[27] Fix | Delete
$menu[2] = array( __( 'Dashboard' ), 'read', 'index.php', '', 'menu-top menu-top-first menu-icon-dashboard', 'menu-dashboard', 'dashicons-dashboard' );
[28] Fix | Delete
[29] Fix | Delete
$submenu['index.php'][0] = array( __( 'Home' ), 'read', 'index.php' );
[30] Fix | Delete
[31] Fix | Delete
if ( is_multisite() ) {
[32] Fix | Delete
$submenu['index.php'][5] = array( __( 'My Sites' ), 'read', 'my-sites.php' );
[33] Fix | Delete
}
[34] Fix | Delete
[35] Fix | Delete
if ( ! is_multisite() || current_user_can( 'update_core' ) ) {
[36] Fix | Delete
$update_data = wp_get_update_data();
[37] Fix | Delete
}
[38] Fix | Delete
[39] Fix | Delete
if ( ! is_multisite() ) {
[40] Fix | Delete
if ( current_user_can( 'update_core' ) ) {
[41] Fix | Delete
$capability = 'update_core';
[42] Fix | Delete
} elseif ( current_user_can( 'update_plugins' ) ) {
[43] Fix | Delete
$capability = 'update_plugins';
[44] Fix | Delete
} elseif ( current_user_can( 'update_themes' ) ) {
[45] Fix | Delete
$capability = 'update_themes';
[46] Fix | Delete
} else {
[47] Fix | Delete
$capability = 'update_languages';
[48] Fix | Delete
}
[49] Fix | Delete
[50] Fix | Delete
$submenu['index.php'][10] = array(
[51] Fix | Delete
sprintf(
[52] Fix | Delete
/* translators: %s: Number of pending updates. */
[53] Fix | Delete
__( 'Updates %s' ),
[54] Fix | Delete
sprintf(
[55] Fix | Delete
'<span class="update-plugins count-%s"><span class="update-count">%s</span></span>',
[56] Fix | Delete
$update_data['counts']['total'],
[57] Fix | Delete
number_format_i18n( $update_data['counts']['total'] )
[58] Fix | Delete
)
[59] Fix | Delete
),
[60] Fix | Delete
$capability,
[61] Fix | Delete
'update-core.php',
[62] Fix | Delete
);
[63] Fix | Delete
[64] Fix | Delete
unset( $capability );
[65] Fix | Delete
}
[66] Fix | Delete
[67] Fix | Delete
$menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' );
[68] Fix | Delete
[69] Fix | Delete
// $menu[5] = Posts.
[70] Fix | Delete
[71] Fix | Delete
$menu[10] = array( __( 'Media' ), 'upload_files', 'upload.php', '', 'menu-top menu-icon-media', 'menu-media', 'dashicons-admin-media' );
[72] Fix | Delete
[73] Fix | Delete
$submenu['upload.php'][5] = array( __( 'Library' ), 'upload_files', 'upload.php' );
[74] Fix | Delete
$submenu['upload.php'][10] = array( __( 'Add Media File' ), 'upload_files', 'media-new.php' );
[75] Fix | Delete
$submenu_index = 15;
[76] Fix | Delete
[77] Fix | Delete
foreach ( get_taxonomies_for_attachments( 'objects' ) as $taxonomy ) {
[78] Fix | Delete
if ( ! $taxonomy->show_ui || ! $taxonomy->show_in_menu ) {
[79] Fix | Delete
continue;
[80] Fix | Delete
}
[81] Fix | Delete
[82] Fix | Delete
$submenu['upload.php'][ $submenu_index++ ] = array( esc_attr( $taxonomy->labels->menu_name ), $taxonomy->cap->manage_terms, 'edit-tags.php?taxonomy=' . $taxonomy->name . '&amp;post_type=attachment' );
[83] Fix | Delete
}
[84] Fix | Delete
[85] Fix | Delete
unset( $taxonomy, $submenu_index );
[86] Fix | Delete
[87] Fix | Delete
$menu[15] = array( __( 'Links' ), 'manage_links', 'link-manager.php', '', 'menu-top menu-icon-links', 'menu-links', 'dashicons-admin-links' );
[88] Fix | Delete
[89] Fix | Delete
$submenu['link-manager.php'][5] = array( _x( 'All Links', 'admin menu' ), 'manage_links', 'link-manager.php' );
[90] Fix | Delete
$submenu['link-manager.php'][10] = array( __( 'Add Link' ), 'manage_links', 'link-add.php' );
[91] Fix | Delete
$submenu['link-manager.php'][15] = array( __( 'Link Categories' ), 'manage_categories', 'edit-tags.php?taxonomy=link_category' );
[92] Fix | Delete
[93] Fix | Delete
// $menu[20] = Pages.
[94] Fix | Delete
[95] Fix | Delete
// Avoid the comment count query for users who cannot edit_posts.
[96] Fix | Delete
if ( current_user_can( 'edit_posts' ) ) {
[97] Fix | Delete
$awaiting_moderation = wp_count_comments();
[98] Fix | Delete
$awaiting_moderation = $awaiting_moderation->moderated;
[99] Fix | Delete
$awaiting_moderation_i18n = number_format_i18n( $awaiting_moderation );
[100] Fix | Delete
/* translators: %s: Number of comments. */
[101] Fix | Delete
$awaiting_moderation_text = sprintf( _n( '%s Comment in moderation', '%s Comments in moderation', $awaiting_moderation ), $awaiting_moderation_i18n );
[102] Fix | Delete
[103] Fix | Delete
$menu[25] = array(
[104] Fix | Delete
/* translators: %s: Number of comments. */
[105] Fix | Delete
sprintf( __( 'Comments %s' ), '<span class="awaiting-mod count-' . absint( $awaiting_moderation ) . '"><span class="pending-count" aria-hidden="true">' . $awaiting_moderation_i18n . '</span><span class="comments-in-moderation-text screen-reader-text">' . $awaiting_moderation_text . '</span></span>' ),
[106] Fix | Delete
'edit_posts',
[107] Fix | Delete
'edit-comments.php',
[108] Fix | Delete
'',
[109] Fix | Delete
'menu-top menu-icon-comments',
[110] Fix | Delete
'menu-comments',
[111] Fix | Delete
'dashicons-admin-comments',
[112] Fix | Delete
);
[113] Fix | Delete
[114] Fix | Delete
unset( $awaiting_moderation );
[115] Fix | Delete
}
[116] Fix | Delete
[117] Fix | Delete
$submenu['edit-comments.php'][0] = array( __( 'All Comments' ), 'edit_posts', 'edit-comments.php' );
[118] Fix | Delete
[119] Fix | Delete
$_wp_last_object_menu = 25; // The index of the last top-level menu in the object menu group.
[120] Fix | Delete
[121] Fix | Delete
$post_types = (array) get_post_types(
[122] Fix | Delete
array(
[123] Fix | Delete
'show_ui' => true,
[124] Fix | Delete
'_builtin' => false,
[125] Fix | Delete
'show_in_menu' => true,
[126] Fix | Delete
)
[127] Fix | Delete
);
[128] Fix | Delete
$builtin = array( 'post', 'page' );
[129] Fix | Delete
[130] Fix | Delete
foreach ( array_merge( $builtin, $post_types ) as $post_type ) {
[131] Fix | Delete
$post_type_obj = get_post_type_object( $post_type );
[132] Fix | Delete
[133] Fix | Delete
// Check if it should be a submenu.
[134] Fix | Delete
if ( true !== $post_type_obj->show_in_menu ) {
[135] Fix | Delete
continue;
[136] Fix | Delete
}
[137] Fix | Delete
[138] Fix | Delete
$post_type_menu_position = is_int( $post_type_obj->menu_position )
[139] Fix | Delete
? $post_type_obj->menu_position
[140] Fix | Delete
: ++$_wp_last_object_menu; // If we're to use $_wp_last_object_menu, increment it first.
[141] Fix | Delete
$post_type_for_id = sanitize_html_class( $post_type );
[142] Fix | Delete
[143] Fix | Delete
$menu_icon = 'dashicons-admin-post';
[144] Fix | Delete
if ( is_string( $post_type_obj->menu_icon ) ) {
[145] Fix | Delete
// Special handling for an empty div.wp-menu-image, data:image/svg+xml, and Dashicons.
[146] Fix | Delete
if ( 'none' === $post_type_obj->menu_icon || 'div' === $post_type_obj->menu_icon
[147] Fix | Delete
|| str_starts_with( $post_type_obj->menu_icon, 'data:image/svg+xml;base64,' )
[148] Fix | Delete
|| str_starts_with( $post_type_obj->menu_icon, 'dashicons-' )
[149] Fix | Delete
) {
[150] Fix | Delete
$menu_icon = $post_type_obj->menu_icon;
[151] Fix | Delete
} else {
[152] Fix | Delete
$menu_icon = esc_url( $post_type_obj->menu_icon );
[153] Fix | Delete
}
[154] Fix | Delete
} elseif ( in_array( $post_type, $builtin, true ) ) {
[155] Fix | Delete
$menu_icon = 'dashicons-admin-' . $post_type;
[156] Fix | Delete
}
[157] Fix | Delete
[158] Fix | Delete
$menu_class = 'menu-top menu-icon-' . $post_type_for_id;
[159] Fix | Delete
// 'post' special case.
[160] Fix | Delete
if ( 'post' === $post_type ) {
[161] Fix | Delete
$menu_class .= ' open-if-no-js';
[162] Fix | Delete
$post_type_file = 'edit.php';
[163] Fix | Delete
$post_new_file = 'post-new.php';
[164] Fix | Delete
$edit_tags_file = 'edit-tags.php?taxonomy=%s';
[165] Fix | Delete
} else {
[166] Fix | Delete
$post_type_file = "edit.php?post_type=$post_type";
[167] Fix | Delete
$post_new_file = "post-new.php?post_type=$post_type";
[168] Fix | Delete
$edit_tags_file = "edit-tags.php?taxonomy=%s&amp;post_type=$post_type";
[169] Fix | Delete
}
[170] Fix | Delete
[171] Fix | Delete
if ( in_array( $post_type, $builtin, true ) ) {
[172] Fix | Delete
$post_type_menu_id = 'menu-' . $post_type_for_id . 's';
[173] Fix | Delete
} else {
[174] Fix | Delete
$post_type_menu_id = 'menu-posts-' . $post_type_for_id;
[175] Fix | Delete
}
[176] Fix | Delete
[177] Fix | Delete
/*
[178] Fix | Delete
* If $post_type_menu_position is already populated or will be populated
[179] Fix | Delete
* by a hard-coded value below, increment the position.
[180] Fix | Delete
*/
[181] Fix | Delete
$core_menu_positions = array( 59, 60, 65, 70, 75, 80, 85, 99 );
[182] Fix | Delete
while ( isset( $menu[ $post_type_menu_position ] ) || in_array( $post_type_menu_position, $core_menu_positions, true ) ) {
[183] Fix | Delete
++$post_type_menu_position;
[184] Fix | Delete
}
[185] Fix | Delete
[186] Fix | Delete
$menu[ $post_type_menu_position ] = array( esc_attr( $post_type_obj->labels->menu_name ), $post_type_obj->cap->edit_posts, $post_type_file, '', $menu_class, $post_type_menu_id, $menu_icon );
[187] Fix | Delete
$submenu[ $post_type_file ][5] = array( $post_type_obj->labels->all_items, $post_type_obj->cap->edit_posts, $post_type_file );
[188] Fix | Delete
$submenu[ $post_type_file ][10] = array( $post_type_obj->labels->add_new_item, $post_type_obj->cap->create_posts, $post_new_file );
[189] Fix | Delete
[190] Fix | Delete
$submenu_index = 15;
[191] Fix | Delete
[192] Fix | Delete
foreach ( get_taxonomies( array(), 'objects' ) as $taxonomy ) {
[193] Fix | Delete
if ( ! $taxonomy->show_ui || ! $taxonomy->show_in_menu || ! in_array( $post_type, (array) $taxonomy->object_type, true ) ) {
[194] Fix | Delete
continue;
[195] Fix | Delete
}
[196] Fix | Delete
[197] Fix | Delete
$submenu[ $post_type_file ][ $submenu_index++ ] = array( esc_attr( $taxonomy->labels->menu_name ), $taxonomy->cap->manage_terms, sprintf( $edit_tags_file, $taxonomy->name ) );
[198] Fix | Delete
}
[199] Fix | Delete
}
[200] Fix | Delete
[201] Fix | Delete
unset( $post_type, $post_type_obj, $post_type_for_id, $post_type_menu_position, $menu_icon, $submenu_index, $taxonomy, $post_new_file );
[202] Fix | Delete
[203] Fix | Delete
$menu[59] = array( '', 'read', 'separator2', '', 'wp-menu-separator' );
[204] Fix | Delete
[205] Fix | Delete
$appearance_capability = current_user_can( 'switch_themes' ) ? 'switch_themes' : 'edit_theme_options';
[206] Fix | Delete
[207] Fix | Delete
$menu[60] = array( __( 'Appearance' ), $appearance_capability, 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'dashicons-admin-appearance' );
[208] Fix | Delete
[209] Fix | Delete
$count = '';
[210] Fix | Delete
if ( ! is_multisite() && current_user_can( 'update_themes' ) ) {
[211] Fix | Delete
if ( ! isset( $update_data ) ) {
[212] Fix | Delete
$update_data = wp_get_update_data();
[213] Fix | Delete
}
[214] Fix | Delete
[215] Fix | Delete
$count = sprintf(
[216] Fix | Delete
'<span class="update-plugins count-%s"><span class="theme-count">%s</span></span>',
[217] Fix | Delete
$update_data['counts']['themes'],
[218] Fix | Delete
number_format_i18n( $update_data['counts']['themes'] )
[219] Fix | Delete
);
[220] Fix | Delete
}
[221] Fix | Delete
[222] Fix | Delete
/* translators: %s: Number of available theme updates. */
[223] Fix | Delete
$submenu['themes.php'][5] = array( sprintf( __( 'Themes %s' ), $count ), $appearance_capability, 'themes.php' );
[224] Fix | Delete
[225] Fix | Delete
if ( wp_is_block_theme() ) {
[226] Fix | Delete
$submenu['themes.php'][6] = array( _x( 'Editor', 'site editor menu item' ), 'edit_theme_options', 'site-editor.php' );
[227] Fix | Delete
} else {
[228] Fix | Delete
$supports_stylebook = ( current_theme_supports( 'editor-styles' ) || wp_theme_has_theme_json() );
[229] Fix | Delete
[230] Fix | Delete
if ( $supports_stylebook ) {
[231] Fix | Delete
$submenu['themes.php'][6] = array( _x( 'Design', 'design menu item' ), 'edit_theme_options', 'site-editor.php' );
[232] Fix | Delete
} else {
[233] Fix | Delete
$submenu['themes.php'][6] = array( _x( 'Patterns', 'patterns menu item' ), 'edit_theme_options', 'site-editor.php?p=/pattern' );
[234] Fix | Delete
}
[235] Fix | Delete
}
[236] Fix | Delete
[237] Fix | Delete
$customize_url = add_query_arg( 'return', urlencode( remove_query_arg( wp_removable_query_args(), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ), 'customize.php' );
[238] Fix | Delete
[239] Fix | Delete
// Hide Customize link on block themes unless a plugin or theme
[240] Fix | Delete
// is using 'customize_register' to add a setting.
[241] Fix | Delete
if ( ! wp_is_block_theme() || has_action( 'customize_register' ) ) {
[242] Fix | Delete
$submenu['themes.php'][7] = array( __( 'Customize' ), 'customize', esc_url( $customize_url ), '', 'hide-if-no-customize' );
[243] Fix | Delete
}
[244] Fix | Delete
[245] Fix | Delete
if ( current_theme_supports( 'menus' ) || current_theme_supports( 'widgets' ) ) {
[246] Fix | Delete
$submenu['themes.php'][10] = array( __( 'Menus' ), 'edit_theme_options', 'nav-menus.php' );
[247] Fix | Delete
}
[248] Fix | Delete
[249] Fix | Delete
if ( current_theme_supports( 'custom-header' ) && current_user_can( 'customize' ) ) {
[250] Fix | Delete
$customize_header_url = add_query_arg( array( 'autofocus' => array( 'control' => 'header_image' ) ), $customize_url );
[251] Fix | Delete
$submenu['themes.php'][15] = array( _x( 'Header', 'custom image header' ), $appearance_capability, esc_url( $customize_header_url ), '', 'hide-if-no-customize' );
[252] Fix | Delete
}
[253] Fix | Delete
[254] Fix | Delete
if ( current_theme_supports( 'custom-background' ) && current_user_can( 'customize' ) ) {
[255] Fix | Delete
$customize_background_url = add_query_arg( array( 'autofocus' => array( 'control' => 'background_image' ) ), $customize_url );
[256] Fix | Delete
$submenu['themes.php'][20] = array( _x( 'Background', 'custom background' ), $appearance_capability, esc_url( $customize_background_url ), '', 'hide-if-no-customize' );
[257] Fix | Delete
}
[258] Fix | Delete
[259] Fix | Delete
unset( $customize_url, $appearance_capability );
[260] Fix | Delete
[261] Fix | Delete
// Add 'Theme File Editor' to the bottom of the Appearance (non-block themes) or Tools (block themes) menu.
[262] Fix | Delete
if ( ! is_multisite() ) {
[263] Fix | Delete
// Must use API on the admin_menu hook, direct modification is only possible on/before the _admin_menu hook.
[264] Fix | Delete
add_action( 'admin_menu', '_add_themes_utility_last', 101 );
[265] Fix | Delete
}
[266] Fix | Delete
/**
[267] Fix | Delete
* Adds the 'Theme File Editor' menu item to the bottom of the Appearance (non-block themes)
[268] Fix | Delete
* or Tools (block themes) menu.
[269] Fix | Delete
*
[270] Fix | Delete
* @access private
[271] Fix | Delete
* @since 3.0.0
[272] Fix | Delete
* @since 5.9.0 Renamed 'Theme Editor' to 'Theme File Editor'.
[273] Fix | Delete
* Relocates to Tools for block themes.
[274] Fix | Delete
*/
[275] Fix | Delete
function _add_themes_utility_last() {
[276] Fix | Delete
add_submenu_page(
[277] Fix | Delete
wp_is_block_theme() ? 'tools.php' : 'themes.php',
[278] Fix | Delete
__( 'Theme File Editor' ),
[279] Fix | Delete
__( 'Theme File Editor' ),
[280] Fix | Delete
'edit_themes',
[281] Fix | Delete
'theme-editor.php'
[282] Fix | Delete
);
[283] Fix | Delete
}
[284] Fix | Delete
[285] Fix | Delete
/**
[286] Fix | Delete
* Adds the 'Plugin File Editor' menu item after the 'Themes File Editor' in Tools
[287] Fix | Delete
* for block themes.
[288] Fix | Delete
*
[289] Fix | Delete
* @access private
[290] Fix | Delete
* @since 5.9.0
[291] Fix | Delete
*/
[292] Fix | Delete
function _add_plugin_file_editor_to_tools() {
[293] Fix | Delete
if ( ! wp_is_block_theme() ) {
[294] Fix | Delete
return;
[295] Fix | Delete
}
[296] Fix | Delete
add_submenu_page(
[297] Fix | Delete
'tools.php',
[298] Fix | Delete
__( 'Plugin File Editor' ),
[299] Fix | Delete
__( 'Plugin File Editor' ),
[300] Fix | Delete
'edit_plugins',
[301] Fix | Delete
'plugin-editor.php'
[302] Fix | Delete
);
[303] Fix | Delete
}
[304] Fix | Delete
[305] Fix | Delete
$count = '';
[306] Fix | Delete
if ( ! is_multisite() && current_user_can( 'update_plugins' ) ) {
[307] Fix | Delete
if ( ! isset( $update_data ) ) {
[308] Fix | Delete
$update_data = wp_get_update_data();
[309] Fix | Delete
}
[310] Fix | Delete
$count = sprintf(
[311] Fix | Delete
'<span class="update-plugins count-%s"><span class="plugin-count">%s</span></span>',
[312] Fix | Delete
$update_data['counts']['plugins'],
[313] Fix | Delete
number_format_i18n( $update_data['counts']['plugins'] )
[314] Fix | Delete
);
[315] Fix | Delete
}
[316] Fix | Delete
[317] Fix | Delete
/* translators: %s: Number of available plugin updates. */
[318] Fix | Delete
$menu[65] = array( sprintf( __( 'Plugins %s' ), $count ), 'activate_plugins', 'plugins.php', '', 'menu-top menu-icon-plugins', 'menu-plugins', 'dashicons-admin-plugins' );
[319] Fix | Delete
[320] Fix | Delete
$submenu['plugins.php'][5] = array( __( 'Installed Plugins' ), 'activate_plugins', 'plugins.php' );
[321] Fix | Delete
[322] Fix | Delete
if ( ! is_multisite() ) {
[323] Fix | Delete
$submenu['plugins.php'][10] = array( __( 'Add Plugin' ), 'install_plugins', 'plugin-install.php' );
[324] Fix | Delete
if ( wp_is_block_theme() ) {
[325] Fix | Delete
// Place the menu item below the Theme File Editor menu item.
[326] Fix | Delete
add_action( 'admin_menu', '_add_plugin_file_editor_to_tools', 101 );
[327] Fix | Delete
} else {
[328] Fix | Delete
$submenu['plugins.php'][15] = array( __( 'Plugin File Editor' ), 'edit_plugins', 'plugin-editor.php' );
[329] Fix | Delete
}
[330] Fix | Delete
}
[331] Fix | Delete
[332] Fix | Delete
unset( $update_data );
[333] Fix | Delete
[334] Fix | Delete
if ( current_user_can( 'list_users' ) ) {
[335] Fix | Delete
$menu[70] = array( __( 'Users' ), 'list_users', 'users.php', '', 'menu-top menu-icon-users', 'menu-users', 'dashicons-admin-users' );
[336] Fix | Delete
} else {
[337] Fix | Delete
$menu[70] = array( __( 'Profile' ), 'read', 'profile.php', '', 'menu-top menu-icon-users', 'menu-users', 'dashicons-admin-users' );
[338] Fix | Delete
}
[339] Fix | Delete
[340] Fix | Delete
if ( current_user_can( 'list_users' ) ) {
[341] Fix | Delete
$_wp_real_parent_file['profile.php'] = 'users.php'; // Back-compat for plugins adding submenus to profile.php.
[342] Fix | Delete
$submenu['users.php'][5] = array( __( 'All Users' ), 'list_users', 'users.php' );
[343] Fix | Delete
if ( current_user_can( 'create_users' ) ) {
[344] Fix | Delete
$submenu['users.php'][10] = array( __( 'Add User' ), 'create_users', 'user-new.php' );
[345] Fix | Delete
} elseif ( is_multisite() ) {
[346] Fix | Delete
$submenu['users.php'][10] = array( __( 'Add User' ), 'promote_users', 'user-new.php' );
[347] Fix | Delete
}
[348] Fix | Delete
[349] Fix | Delete
$submenu['users.php'][15] = array( __( 'Profile' ), 'read', 'profile.php' );
[350] Fix | Delete
} else {
[351] Fix | Delete
$_wp_real_parent_file['users.php'] = 'profile.php';
[352] Fix | Delete
$submenu['profile.php'][5] = array( __( 'Profile' ), 'read', 'profile.php' );
[353] Fix | Delete
if ( current_user_can( 'create_users' ) ) {
[354] Fix | Delete
$submenu['profile.php'][10] = array( __( 'Add User' ), 'create_users', 'user-new.php' );
[355] Fix | Delete
} elseif ( is_multisite() ) {
[356] Fix | Delete
$submenu['profile.php'][10] = array( __( 'Add User' ), 'promote_users', 'user-new.php' );
[357] Fix | Delete
}
[358] Fix | Delete
}
[359] Fix | Delete
[360] Fix | Delete
$site_health_count = '';
[361] Fix | Delete
if ( ! is_multisite() && current_user_can( 'view_site_health_checks' ) ) {
[362] Fix | Delete
$get_issues = get_transient( 'health-check-site-status-result' );
[363] Fix | Delete
[364] Fix | Delete
$issue_counts = array();
[365] Fix | Delete
[366] Fix | Delete
if ( false !== $get_issues ) {
[367] Fix | Delete
$issue_counts = json_decode( $get_issues, true );
[368] Fix | Delete
}
[369] Fix | Delete
[370] Fix | Delete
if ( ! is_array( $issue_counts ) || ! $issue_counts ) {
[371] Fix | Delete
$issue_counts = array(
[372] Fix | Delete
'good' => 0,
[373] Fix | Delete
'recommended' => 0,
[374] Fix | Delete
'critical' => 0,
[375] Fix | Delete
);
[376] Fix | Delete
}
[377] Fix | Delete
[378] Fix | Delete
$site_health_count = sprintf(
[379] Fix | Delete
'<span class="menu-counter site-health-counter count-%s"><span class="count">%s</span></span>',
[380] Fix | Delete
$issue_counts['critical'],
[381] Fix | Delete
number_format_i18n( $issue_counts['critical'] )
[382] Fix | Delete
);
[383] Fix | Delete
}
[384] Fix | Delete
[385] Fix | Delete
$menu[75] = array( __( 'Tools' ), 'edit_posts', 'tools.php', '', 'menu-top menu-icon-tools', 'menu-tools', 'dashicons-admin-tools' );
[386] Fix | Delete
$submenu['tools.php'][5] = array( __( 'Available Tools' ), 'edit_posts', 'tools.php' );
[387] Fix | Delete
$submenu['tools.php'][10] = array( __( 'Import' ), 'import', 'import.php' );
[388] Fix | Delete
$submenu['tools.php'][15] = array( __( 'Export' ), 'export', 'export.php' );
[389] Fix | Delete
/* translators: %s: Number of critical Site Health checks. */
[390] Fix | Delete
$submenu['tools.php'][20] = array( sprintf( __( 'Site Health %s' ), $site_health_count ), 'view_site_health_checks', 'site-health.php' );
[391] Fix | Delete
$submenu['tools.php'][25] = array( __( 'Export Personal Data' ), 'export_others_personal_data', 'export-personal-data.php' );
[392] Fix | Delete
$submenu['tools.php'][30] = array( __( 'Erase Personal Data' ), 'erase_others_personal_data', 'erase-personal-data.php' );
[393] Fix | Delete
if ( is_multisite() && ! is_main_site() && '1' !== get_site()->deleted ) {
[394] Fix | Delete
$submenu['tools.php'][35] = array( __( 'Delete Site' ), 'delete_site', 'ms-delete-site.php' );
[395] Fix | Delete
}
[396] Fix | Delete
if ( ! is_multisite() && defined( 'WP_ALLOW_MULTISITE' ) && WP_ALLOW_MULTISITE ) {
[397] Fix | Delete
$submenu['tools.php'][50] = array( __( 'Network Setup' ), 'setup_network', 'network.php' );
[398] Fix | Delete
}
[399] Fix | Delete
[400] Fix | Delete
$menu[80] = array( __( 'Settings' ), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' );
[401] Fix | Delete
$submenu['options-general.php'][10] = array( _x( 'General', 'settings screen' ), 'manage_options', 'options-general.php' );
[402] Fix | Delete
$submenu['options-general.php'][15] = array( __( 'Writing' ), 'manage_options', 'options-writing.php' );
[403] Fix | Delete
$submenu['options-general.php'][20] = array( __( 'Reading' ), 'manage_options', 'options-reading.php' );
[404] Fix | Delete
$submenu['options-general.php'][25] = array( __( 'Discussion' ), 'manage_options', 'options-discussion.php' );
[405] Fix | Delete
$submenu['options-general.php'][30] = array( __( 'Media' ), 'manage_options', 'options-media.php' );
[406] Fix | Delete
$submenu['options-general.php'][40] = array( __( 'Permalinks' ), 'manage_options', 'options-permalink.php' );
[407] Fix | Delete
$submenu['options-general.php'][45] = array( __( 'Privacy' ), 'manage_privacy_options', 'options-privacy.php' );
[408] Fix | Delete
[409] Fix | Delete
$_wp_last_utility_menu = 80; // The index of the last top-level menu in the utility menu group.
[410] Fix | Delete
[411] Fix | Delete
$menu[99] = array( '', 'read', 'separator-last', '', 'wp-menu-separator' );
[412] Fix | Delete
[413] Fix | Delete
// Back-compat for old top-levels.
[414] Fix | Delete
$_wp_real_parent_file['post.php'] = 'edit.php';
[415] Fix | Delete
$_wp_real_parent_file['post-new.php'] = 'edit.php';
[416] Fix | Delete
$_wp_real_parent_file['edit-pages.php'] = 'edit.php?post_type=page';
[417] Fix | Delete
$_wp_real_parent_file['page-new.php'] = 'edit.php?post_type=page';
[418] Fix | Delete
$_wp_real_parent_file['wpmu-admin.php'] = 'tools.php';
[419] Fix | Delete
$_wp_real_parent_file['ms-admin.php'] = 'tools.php';
[420] Fix | Delete
[421] Fix | Delete
// Ensure backward compatibility.
[422] Fix | Delete
$compat = array(
[423] Fix | Delete
'index' => 'dashboard',
[424] Fix | Delete
'edit' => 'posts',
[425] Fix | Delete
'post' => 'posts',
[426] Fix | Delete
'upload' => 'media',
[427] Fix | Delete
'link-manager' => 'links',
[428] Fix | Delete
'edit-pages' => 'pages',
[429] Fix | Delete
'page' => 'pages',
[430] Fix | Delete
'edit-comments' => 'comments',
[431] Fix | Delete
'options-general' => 'settings',
[432] Fix | Delete
'themes' => 'appearance',
[433] Fix | Delete
);
[434] Fix | Delete
[435] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/menu.php';
[436] Fix | Delete
[437] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function