Gibt es eine Möglichkeit, Plugins im Dashboard zu entfernen – wo Sie den Slug nicht anhand des Plugins-Namens identifizieren können?

Ich versuche, eine generische function zu erstellen, die Menüseiten im Admin-Dashboard WordPress entfernt. Das ist mein Versuch …

function remove_menus(){ //Find admin... $admin_url = get_admin_url(); //Find php-files in admin path //and create an array of them $admin_files = array(); foreach (glob("*.php") as $file) { if($file == '.' || $file == '..') continue; $admin_files[] = $file; } //Remove all menupages for all files in wp-admin folder foreach($admin_files as $af) { remove_menu_page( $af ); } //Get all registered post types // types will be a list of the post type names $types = get_post_types(); //Remove pages for all registered post types as well foreach( $types as $type ) { remove_menu_page( 'edit.php?post_type=' . $type); } //Get plugins and remove them from menu $plugins = get_plugins(); foreach($plugins as $p) { remove_menu_page( strtolower($p['Name'] ) ); } } add_action( 'admin_init', 'remove_menus' ,99); 

Der Teil, über den ich mich wundere, ist folgendes:

  //Get plugins $plugins = get_plugins(); foreach($plugins as $p) { remove_menu_page( strtolower($p['Name'] ) ); } 

Dies würde nur Plugins entfernen, bei denen der Name des Plugins wie admin.page = {Name des Plugins} gesetzt ist.

Beispiel: remove_menu_page('duplicator'); würde duplicator plugin entfernen, da admin.page = duplicate

remove_menu_page('Yoast SEO'); würde NICHT Yoast SEO plugin entfernen, da der eigentliche Slug admin.php ist? page = wpseo_dashboard (und nicht admin.php? page = yoastseo)

Um dieses Plugin manuell zu entfernen, müsstest du es tun

 remove_menu_page('wpseo_dashboard'); 

Gibt es eine Möglichkeit, Plugins im Dashboard zu entfernen – wo Sie den Slug nicht anhand des Plugins-Namens identifizieren können?

Solutions Collecting From Web of "Gibt es eine Möglichkeit, Plugins im Dashboard zu entfernen – wo Sie den Slug nicht anhand des Plugins-Namens identifizieren können?"

Ich denke, was Sie tun möchten, ist über das Array $_GLOBALS['menu'] iterieren. Dies sollte Ihnen eine Liste aller Elemente im Admin-Menü geben, damit Sie wissen, welche Haken entfernt werden müssen.

Es gibt weitere Details und gute Informationen in dieser Antwort: https://wordpress.stackexchange.com/a/136064/9080

Der entsprechende Haken / Slug kann gemäß dieser Antwort in dem Array-Element mit der Taste 2 gefunden werden.

Sie können diese Anleitung auch nützlich für die Anpassung Ihres WordPress-Admins finden