Die WordPress-Funktion remove_menu_page() gibt einen Fehler aus

Lesezeit: 3 Minuten

Benutzeravatar von Matanya
Matanya

Ich versuche, ein paar Menüs der obersten Ebene im WordPress-Admin-Panel zu entfernen. Seltsamerweise erhalte ich eine Fehlermeldung aus der Datei plugin.php, in der die Funktion deklariert ist, die besagt:
“Ungültiges Argument für foreach() in C:\wamp\www\wordpress-alut\wp-admin\includes\plugin.php in Zeile 1261 angegeben”. Ich ging zu der Datei und fand den folgenden Code:

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 ist wichtig zu beachten, dass bei Verwendung von remove_Untermenü_page(), das ist die nächste Funktion in plugin.php, erhalte ich keinen solchen Fehler. meine Funktion, befindet sich in 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');
}; 

  • brauchen sie .php Am Ende?

    – Nick Schwelidse

    29. Januar 2012 um 10:34 Uhr

Benutzeravatar von Sabari
Sabari

Du rufst an mf_remove_menu_pages() Vor $menu ist tatsächlich eingerichtet, oder es scheint in Fällen, wenn $menu ist nie eingerichtet. Sie müssen auf die warten admin_menu auflegen, um tatsächlich anzurufen remove_menu_page(). Wenn Sie es tun admin_initdann verwenden Sie den falschen Haken, und deshalb bohrt es sich auf AJAX-Anforderungen

Sie müssen also Ihren Haken ändern. Bitte versuchen Sie es damit:

add_action( 'admin_menu', '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');
}

Hoffe das hilft 🙂

  • Vielen Dank, hat mir zu viel Zeit gespart

    Benutzer1466291

    24. März 2013 um 18:40 Uhr

In neueren Versionen von WordPress, um einige Unterseiten zu entfernen, wie z theme-editor.php (oder Unterseiten, die durch das Jetpack-Plugin eingeführt werden) müssen Sie an die binden admin_menu Haken mit sehr hoher Priorität.

Zum Beispiel entfernen theme-editor.php Sie müssen eine Priorität von ungefähr festlegen 120. Für Jetpack-Seiten brauchen Sie etwas herum 2000.

add_action( 'admin_menu', 'mf_remove_menu_pages', 120 );
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');
}

Dies steht auch in der WordPress-Kodex und bei der WordPress Support-Foren.

1392370cookie-checkDie WordPress-Funktion remove_menu_page() gibt einen Fehler aus

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy