Estoy tratando de eliminar algunos menús de nivel superior en el panel de administración de WordPress. Por extraño que parezca, recibo un mensaje de error del archivo plugin.php, donde se declara la función, diciendo: "Se ha proporcionado un argumento inválido para foreach() en C: \ wamp \ www \ wordpress-alut \ wp-admin \ includes \ plugin.php en la línea 1261 ". Fui al archivo y encontró el siguiente código:función de wordpress remove_menu_page() arroja un error
function remove_menu_page($menu_slug) {
global $menu;
foreach ($menu as $i => $item) { // **this is line 1261**
if ($menu_slug == $item[2]) {
unset($menu[$i]);
return $item;
}
}
return false;
}
Es importante señalar que cuando uso remove_ submenú _page(), que es la siguiente función en plugin.php, No me sale tales error. mi función, situada en functions.php:
add_action('admin_init', 'mf_remove_menu_pages');
function mf_remove_menu_pages() {
remove_menu_page('link-manager.php');
remove_menu_page('index.php');
remove_menu_page('users.php');
remove_menu_page('upload.php');
remove_menu_page('tools.php');
remove_menu_page('edit.php');
remove_menu_page('edit-comments.php');
remove_menu_page('post-new.php');
remove_submenu_page('themes.php','themes.php');
remove_submenu_page('themes.php','theme-editor.php');
remove_submenu_page('themes.php','widgets.php');
};
¿necesitan '.php' al final? –