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
Schreibe einen Kommentar