Back again – WordPress Plugin deaktivieren ohne WP


Wordpress Logo Wir sind wieder da, und wie könnte es anders sein, nicht ganz problemlos. So macht mir ein Plugin am neuen Server Probleme, indem es eine Endlosschleife generiert. Dummerweise bei jedem Login, ein deaktivieren des Plugins über das Backend ist somit nicht möglich.

Es kann schon mal vorkommen, dass man WordPress im Übereifer mit einem Plugin lahmlegt, da braucht man noch nichtmal einen Serverumzug dafür. Drum kurz eine Auflistung der Möglichkeiten die Plugins zu deaktivieren:

wp-content/plugins umbenennen

Die Plugins werden von WordPress im Verzeichnis wp-content/plugins abgelegt. Benennt man dieses Verzeichnis um werden sie beim nächsten Aufruf von WordPress nicht gefunden. WordPress deaktiviert daraufhin alle Plugins und lädt normal. Wird der Ordner wieder zurück umbenannt, sind die Plugins wieder aktiv.

pluginverzeichnis umbenennen

Möchte man nur ein Plugin umbenennen und hat keinen direkten Zugriff zur Datenbank kann man auch nur das Verzeichnis des jeweilgen Plugins umbenennen. Dadurch wird nur dieses Plugin deaktiviert.

alle per SQL Statement

Hat man zugriff auf die Datenbank können alle Plugins per SQL Aufruf deaktiviert werden. Dazu muss man folgendes Statement absetzen. Der Tabellenname wp_options muss natürlich noch angepasst werden.

update wp_options set option_value=’’ where option_name=’active_plugins’

Dadurch wird der bisherige Wert mit nichts (set options_value=’’ – zwei einzelne Anführungszeichen)  ersetzt und alle Plugins sind deaktiviert.

einzelne per SQL Statement

Will man hier nur ein einzelnes Plugin deaktivieren bedarf es schon gezielterer Eingriffe. Ist das vorige Update noch mit einer Holzhammer Methode zu vergleichen muss man den String der unter active_plugins verborgen ist mit einem Skalpell zerlegen um nur ein einzelnes Plugin abzudrehen.

Als erstes holen wir uns den Wert der zur Zeit unter active_plugins gespeichert ist:

select option_value from wp_options where option_name=’active_plugins’;

Dabei bekommen wir beispielhaft folgenden String zurück:

a:3:{i:0;s:25:“plugin-one/plugin-one.php“;i:1;s:25:“plugin-two/plugin-two.php“;i:2;s:29:“plugin-three/plugin-three.php“;}

Der Aufbau des Strings ist wie folgt:

a:3 zeigt an, dass es sich um einen Array mit 3 Elementen handelt. Jedes Element wird über seinen Index gefunden. In unserem Fall a:3 gibt es also drei Elemente mit den Indexwerten 0 bis 2: i:0, i:1 und i:2

Nach jedem Indexwert steht der eigentliche Inhalt des Array. Dabei wird erst noch ein wenig Meta-Information angeliefert. s steht hierbei für String, die Zahl zeigt die Zeichenanzahl des Strings an.

Möchte man nun zum Beispiel plugin-two deaktivieren sind folgende Schritte notwendig:

Zuerst muss man den Array kürzen, aus a:3 wird a:2

Das zu entfernende Plugin muss rausgenommen werden, folgender Textteil wird ausgeschnitten: i:1;s:25:“plugin-two/plugin-two.php“;

Damit das Array nun wieder konsistent ist, müssen final noch die anderen Indexe angepasst werden: i:2 wird zu i:1

Den neuen Gesamt-String stecken wir dann wieder in die Datenbank:

update wp_options set option_value=
’a:3:{i:0;s:25:"plugin-one/plugin-one.php";i:1;s:29:"plugin-three/plugin-three.php";}’
where option_name=’active_plugins’

Und schon ist das einzelne Plugin deaktiviert.

So ich hoffe das hilft!

So long, have fun!

Quelle: http://www.buildblog.de/2009/04/03/wordpress-plugins-manuell-deaktivieren

Ähnliche Artikel:

5 Kommentare

  1. hi thomas

    hab deinen tipp ausprobiert. er funktioniert, im prinzip. mein problem scheint tiefer zu liegen:
    in der pluginliste bei wordpress werden mir alle installierten plugins angezeigt, aktiv oder inaktiv. so weit so gut. es ist eines darunter, nennen wir es „store“, das auch angezeigt wird, aber physisch nicht auf dem server liegt. da hab ich es schon gelöscht. da ein deaktivieren keinen erfolg brachte. dachte, ich hau das teil einfach raus. nützte nichts, es hält sich hartnäckig in der pluginliste. dann hab ich’s versucht mit phpmyadmin und deinen tipp ausprobiert. bei „active_plugins“ alles gelöscht (hat zwar nur die richtigen angzeigt, store war nicht drin) aber egal. gelöscht und im backend von wp wieder alle deaktivierten plugins installiert. store ist immer noch drin. ich bring das teil nicht raus. schon dessen installation hat unglücklich angefangen. „invalid header“.
    normalerweise aktiviert sich ein plugin nicht. dieses schon. der ordner auf dem server wurde erstellt und eben, mittlerweile gelöscht. aber store hält sich und hält sich… :) auch im neuen jahr. hast du noch nen tipp ?

    gruss
    marc

    1. Hallo Marc!

      Leider kann ich Ihnen auch keine weiteren Tipp geben. Ich hoffe Sie konnten Ihr Problem mittlerweile lösen. Wenn dem so ist, wäre ich natürlich über eine Beschreibung der Vorgehensweise hier als Kommentar sehr erfreut.

      Schöne Grüße
      Thomas

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*