Entfernen, Aufheben der Registrierung, Entfernen der Aktion – Nicht am Plugin arbeiten

Vor einigen Jahren habe ich nicht wirklich die Best Practice für die Ausführung eines MultiSite-Netzwerks im Griff, sondern vernetze oft aktivierte Plugins. Später wurde mir klar, dass dies ein Fehler war, weil nicht alle Seiten einige der Plugins benutzten. So habe ich unnötige Skripte und Stylesheets auf mehreren Seiten.

Was ich für diese unerwünschten Plugin-Ressourcen begonnen habe, ist wp_dequeue_style( 'style-sheet' ); und wp_deregister_style( 'style-sheet' ); in Kind-Thema functionen.php

Mein Problem ist, dass es nicht für alle Plugins funktioniert. Zum Beispiel folgt https://wordpress.org/plugins/advanced-recent-posts/ nicht meiner function. Ich dachte, ich würde vielleicht versuchen, remove_action(); aber mir ist nicht bekannt, wie das genau funktioniert.

Hier ist, woran ich in meiner functions.php arbeite und es funktioniert für andere Stylesheets.

 function remove_unwanted_stylesheets() { wp_dequeue_style( 'wp-advanced-rp-css' ); wp_deregister_style( 'wp-advanced-rp-css' ); } add_action( 'wp_enqueue_scripts', 'remove_unwanted_stylesheets', 999 ); 

Das Plugin Enqueue und Add-Aktion ist wie folgt.

 function add_advanced_recent_posts_widget_stylesheet() { $plugin_dir = 'advanced-recent-posts-widget'; if ( @file_exists( STYLESHEETPATH . '/advanced-recent-posts-widget.css' ) ) $mycss_file = get_stylesheet_directory_uri() . '/advanced-recent-posts-widget.css'; elseif ( @file_exists( TEMPLATEPATH . '/advanced-recent-posts-widget.css' ) ) $mycss_file = get_template_directory_uri() . '/advanced-recent-posts-widget.css'; else $mycss_file = plugins_url( 'css/advanced-recent-posts-widget.css',dirname(__FILE__) ); wp_register_style( 'wp-advanced-rp-css', $mycss_file ); wp_enqueue_style( 'wp-advanced-rp-css' ); } add_action('wp_print_styles', 'add_advanced_recent_posts_widget_stylesheet'); 

Jeder Einblick, wie ich das Stylesheet für dieses Plugin effektiv entfernen und die Registrierung aufheben kann, wird sehr geschätzt.

Solutions Collecting From Web of "Entfernen, Aufheben der Registrierung, Entfernen der Aktion – Nicht am Plugin arbeiten"

Ihr Problem ist das Timing. Wenn Sie diese Antwort für eine detaillierte Reihenfolge überprüfen, sehen Sie, dass wp_print_styles nach wp_enqueue_scripts . Daher würde wp_print_styles mit der Priorität 11 am wp_print_styles funktionieren, wenn Ihre Dequeue funktioniert.

Es ist wirklich unkonventionell, den Autor dieses Plugins zu diesem Zeitpunkt zu registrieren. wp_enqueue_scripts ist genau dafür gedacht, damit andere solche Probleme nicht haben.

Aus dem Plugins Quellcode Ich kopierte einfach kopiert dann änderte die add_action(); to remove_action(); in meiner Kind-Themen-function.php

 add_action('wp_print_styles', 'add_advanced_recent_posts_widget_stylesheet'); 

Ersetzen Sie add mit remove .

 remove_action('wp_print_styles','add_advanced_recent_posts_widget_stylesheet'); 

So einfach. Jetzt weiß ich.