wake-up-neo.net

Deaktivieren Sie das Plugin für Wordpress auf bestimmten Seiten/Beiträgen

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!

22
Gabriel

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!

36
Jesse B

Hier ist die Idee .

 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;
 }
16
mainpart

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.

6
James Jackson

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);
5
numediaweb

mit dem kostenlosen Plugin Freesoul Deactivate Plugins können Sie nun bestimmte Plugins auf bestimmten Seiten, Posts, benutzerdefinierten Posts und Archiven deaktivieren

0
Beppe