Back again – WordPress Plugin deaktivieren ohne WP

Hat man sein Wordpress durch ein Plugin zerschossen und kann es nicht mehr über WP ausschalten, helfen die hier beschriebenen Kniffe beim Plugin deaktivieren.

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: