Ich habe den folgenden Code, der viele Dinge aufräumt, die nicht im Admin-Bereich verwendet werden:
add_action( 'admin_menu', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
remove_menu_page( 'edit.php' ); //Posts
remove_menu_page( 'upload.php' ); //Media
remove_menu_page( 'edit-comments.php' ); //Comments
remove_menu_page( 'themes.php' ); //Appearance
remove_menu_page( 'users.php' ); //Users
remove_menu_page( 'tools.php' ); //Tools
remove_menu_page( 'options-general.php' ); //Settings
};
Es gibt jedoch zwei Menüpunkte, die aus Plugins eingefügt wurden.
Wenn ich den Mauszeiger über jeden Menüpunkt bewege, werden folgende Links angezeigt:
/wp-admin/edit.php?post_type=acf
/wp-admin/admin.php?page=wpcf7
Gibt es eine Möglichkeit, diese Menüseiten auch auszublenden?
Antworten:
Sie müssen die richtigen Hooks verwenden (die nicht immer mit den URLs / Slugs identisch sind), und es tut nicht weh, einen Hook zu verwenden, der später ausgeführt wird (z. B.
admin_init
):Sie können Folgendes zum Debuggen verwenden:
Dies gibt (für mein Setup) Folgendes für die Menüseite des Contact Form 7-Plugins:
Das Array - Element mit Schlüssel
2
ist , was Sie suchen:wpcf7
.quelle
remove_menu_page()
war eine große Hilfe, zu zeigen, wie man das Menü auswirft und wofür man es verwendet. Mir wurde beigebracht, wie man fischt, anstatt mir nur den Fisch zu geben!SIE KÖNNEN ALLES MIT DEM FOLGENDEN DEBUGGEN, UM ALLE INFOS ZU ERHALTEN, DIE SIE BENÖTIGEN:
Mit den Tasten erhalten Sie die Array-Werte, mit denen Sie all dies mit WordPress-Globals ausführen können (obwohl dies nicht empfohlen wird).
Und um für bestimmte Benutzer zu entfernen, gehen Sie genauso vor, außer mit den hinzugefügten Funktionen:
UND UM ALLES ZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZUSAMMENZIEHEN, WARUM UNSER CODE NICHT KÜRZEN? SIE KÖNNEN ARRAYS VERWENDEN, um das Schreiben von remove_submenu_page 50 Mal zu vermeiden. Dies funktioniert auch mit den Symbolleistenknoten:
quelle
Wahrscheinlich müssen Sie die Priorität add_action auf eine höhere Zahl setzen und diese beiden neuen Links gezielt so ausrichten :
Erweiterte benutzerdefinierte Felder bieten auch ein Hilfedokument dazu, wie Sie dies für ihr Menü tun können:
http://www.advancedcustomfields.com/resources/how-to/how-to-hide-acf-menu-from-clients/
Das Kontaktformular 7 hat auch eine eigene Möglichkeit, die Sichtbarkeit des Menüs einzuschränken:
http://contactform7.com/einschränkung-des-zugangs-zum-administrationspanel/
quelle
remove_menu_page( 'wpcf7' );
Aktualisieren
Ich habe ein Code-Snippet mit einer stabileren Funktion erstellt, das sowohl Hauptmenüs als auch Untermenüelemente behandelt.
Ursprüngliche Antwort
Anstatt die Menüs anzugeben, die Sie entfernen möchten, geben Sie die Menüs an, die Sie beibehalten möchten :)
Auf diese Weise müssen Sie nicht nach Plugin-Namen suchen und den Code ändern, wenn Sie neue Plugins hinzufügen.
quelle
Sie müssen den richtigen $ menu_slug finden. Der folgende Code hat bei mir funktioniert:
quelle
Natürlich können Sie nur die Elemente angeben, die Sie entfernen möchten. Schauen Sie sich den folgenden Code an:
Dies ist nur das Negative der Methode von numediaweb. Danke @numediaweb. Es funktioniert gut.
PS: 'menu_item_1 / n' -> Bewegen Sie den Mauszeiger über den Menüpunkt und rufen Sie die genaue Seite des im Link angezeigten Menüpunkts auf.
quelle
Verwenden Sie dieses Code-Snippet
quelle