Kennt jemand eine wirklich effektive Methode, um ein Plugin (das aktiv ist) auf einer bestimmten Seite zu deaktivieren? Es gibt einige Plugins, die auf einigen Seiten der Website nicht wirklich benötigt werden. Sie enthalten viele CSS- und JavaScript-Dateien, die die Ladegeschwindigkeit der Website verlangsamen und manchmal mit anderen Dateien in Konflikt stehen.
Ich weiß, dass ich mich mit dem Code des Plugins usw. beschäftigen kann, aber es ist nicht wirklich effektiv.
Irgendwelche Ideen?
Danke im Voraus!
probieren Sie "Plugin Organizer" Wordpress Plugin von Jeff Sterup. Sie müssen "Selective Plugin Loading" unter den Einstellungen aktivieren (achten Sie darauf, dass Sie deren Anweisungen befolgen, um sie zu aktivieren).
In Ihrem Post/Seiten-Editor befindet sich unterhalb des Erstellungsfensters ein Feld mit Ankreuzfeldern, um das jeweilige Plugin für diese Seite zu deaktivieren
ich brauchte wahrscheinlich mehr als 20 Google und Wordpress Plugins Repository-Suchen, um endlich eine einfache Lösung zu finden. Ich hoffe es funktioniert auch für Sie!
add_filter( 'option_active_plugins', 'lg_disable_cart66_plugin' );
function lg_disable_cart66_plugin($plugins){
if(strpos($_SERVER['REQUEST_URI'], '/store/') === FALSE AND strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === FALSE) {
$key = array_search( 'cart66/cart66.php' , $plugins );
if ( false !== $key ) unset( $plugins[$key] );
}
return $plugins;
}
Ich weiß, es ist alt, aber dieser Thread war genau das, was ich brauchte.
Die einzige Einschränkung bei der Antwort von Numediaweb ist, dass die Aktion zum Entfernen die gleiche Priorität wie die Aktion zum Hinzufügen erfordert
Haken im Plugin
add_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999);
add_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts', 999);
add_action('wp_head', 'easy_fancybox', 999);
Code zum Entfernen von Hooks
function remove_easy_fancybox() {
global $post;
$ids = array(12,34,55);
if(in_array($post->ID,$ids)):
remove_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999);
remove_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts',999);
remove_action('wp_head', 'easy_fancybox', 999);
wp_dequeue_script( 'jquery.fancybox' );
wp_dequeue_script( 'jquery.easing' );
wp_dequeue_script( 'jquery.mousewheel' );
wp_dequeue_script( 'jquery.metadata' );
endif;
}
add_action('wp_head', 'remove_easy_fancybox', 1);
Von http://codex.wordpress.org/Function_Reference/remove_action
Important: Um einen Hook zu entfernen, müssen die Argumente $ function_to_remove und $ priority übereinstimmen, wenn der Hook hinzugefügt wurde. Dies gilt für beide Filter und Aktionen. Es wird keine Warnung zu Fehlern bei der Entfernung ausgegeben.
Ich habe meine if-Anweisung eingefügt, um die Aktion nur für bestimmte Post-IDs auszuführen. Ich dachte, es könnte hilfreich sein.
Prüfen Sie zunächst, ob das zu entfernende Plugin kein Optionsmenü enthält, in dem Sie die auszuschließenden Seiten festlegen können.
Zweitens, suchen Sie nach Ihren Plugin-Aktionshaken für ex:
add_action('wp_head', 'easy_fancybox', 999);
Dies ist ein Beispiel des einfachen Fancybox-Plugins, das an den WordPress-Header angehängt wird. Um es zu entfernen, habe ich diese Funktion in Ihren functions.php
gestellt und bevor eine Instanz von wp_head();
aufgerufen wird:
function remove_easy_fancybox() {
remove_action('wp_head', 'easy_fancybox_enqueue_styles');
remove_action('wp_head', 'easy_fancybox_enqueue_scripts');
remove_action('wp_head', 'easy_fancybox');
wp_dequeue_script( 'jquery.fancybox' );
wp_dequeue_script( 'jquery.easing' );
wp_dequeue_script( 'jquery.mousewheel' );
wp_dequeue_script( 'jquery.metadata' );
}
add_action('wp_head', 'remove_easy_fancybox', 1);
mit dem kostenlosen Plugin Freesoul Deactivate Plugins können Sie nun bestimmte Plugins auf bestimmten Seiten, Posts, benutzerdefinierten Posts und Archiven deaktivieren