Code Snippets: Fatalen Fehler bei Snippets korrigieren

Plugin Code Snippets: Einen fatalen Fehler bei Snippets korrigieren

Bei dem Plugin Code Snippets für WordPress werden in der Regel Fehler im Code durch das Plugin abgefangen. In wenigen Fällen hatte ich aber schon mal einen fatalen Fehler, der nicht abgefangen wurde. Man kann zwar das Plugin deaktivieren, aber damit sind alle Snippets nicht mehr verfügbar. Wie man das Problem in phpMyAdmin lösen kann, beschreibe ich in diesem Beitrag.

Als Alternative zu einem Child Theme kann man das wunderbare Plugin Code Snippets verwenden. Statt des Child Themes werden Snippets in dem Plugin erstellt und aktiviert. Über Design > Customizer > Zusätzliches CSS kann man ggfs. noch einige Anpassungen bezogen auf das Design (z. B. Änderung der Schriftfarbe, Schriftgröße, etc.) vornehmen. Damit kann man sich in vielen Fällen ein Child Theme sparen. Eine Anleitung zu diesem Plugin habe ich in diesem Beitrag geschrieben.

Bei der Erstellung einer function über Code Snippets war mir ein Fehler unterlaufen. Normalerweise fängt Code Snippets fast alle (syntaktischen) Fehler ab. Aber in dem Fall hat das leider nicht funktioniert.

Code Snippets: Fataler Fehler (WordPress)
Fataler Fehler
Code Snippets: Parse Error (WordPress)
Parse Error

Ich habe eine entsprechende Mail mit dem Hinweis auf den Fehler erhalten. Hier wird auch ein Link genannt, mit dem man sich im „Recovery Mode“ anmelden kann:

If your site appears broken and you can’t access your dashboard normally, WordPress now has a special „recovery mode“. This lets you safely login to your dashboard and investigate further.

http://fse-5.9.test/wp-login.php?action=enter_recovery_mode&rm_token=jerVuk3Z9bVKM8QLDdXmqs&rm_key=ACbnHqqeewIs9ODIkAEFe4

Mit diesem Link konnte ich mich wieder im Recovery Modus anmelden und der Fehler wird gezeigt:

Recovery-Modus bei Code Snippets (WordPress)
Recovery-Modus bei Code Snippets

Bei Klick auf den folgenden Link kommt natürlich logischerweise wieder der Fehler.

You are in recovery mode. This means there may be an error with a theme or plugin. To exit recovery mode, log out or use the Exit button. Exit Recovery Mode

Wenn man aber viele Snippets gespeichert hat, dann ist guter Rat teuer, weil die einzige Lösung darin besteht, das Plugin zu deaktivieren. In dem Fall stehen natürlich auch die anderen fehlerfreien Snippets nichts mehr zur Verfügung. Damit kommt man also nicht weiter.

Behebung des Fehlers über phpMyAdmin

In dem Fall muss man sich im Kundenbereich des Hosters bei phpMyAdmin anmelden, um den Fehler zu beheben. Die Tabelle wp_snippets enthält alle Snippets, die man bei Code Snippets erstellt hat. Hier gibt es jetzt einerseits die Möglichkeit, das entsprechende Snippet direkt zu korrigieren (Spalte Code):

Fehler im Snippet korrigieren in der Datenbank (phpMyAdmin)
Fehler im Snippet korrigieren in der Datenbank

Alternativ (und die sichere Methode) ist aber das Snippet zu deaktivieren (In der Spalte active den Wert von 1 auf 0 ändern).

Deaktivierung des Snippets in der Datenbank (phpMyAdmin)
Deaktivierung des Snippets in der Datenbank

Danach kann man sich ohne den Recovery Mode anmelden und nach der Korrektur des Snippets ist wieder alles gut 😊

Deaktivierung eines fehlerhaften Snippets über die wp-config.php

Auf eine weitere Option hat Bego (@pixolin) im Support-Forum hingewiesen: Im Falle einer fehlerhaften Code-Eingabe kann man in der wp-config.php oberhalb von 
/* That's all, stop editing! Happy blogging. */ 
die folgende Zeile einfügen:

define('CODE_SNIPPETS_SAFE_MODE', true);

Damit wird das Code-Snippet deaktiviert und man kommt wieder ins Dashboard, um die Fehleingabe zu korrigieren. Nach der Korrektur sollte man die Zeile wieder entfernen. Vor der Änderung der wp-config.php sollte man auf jeden Fall eine Sicherung der Datei erstellen (z. B. durch Kopie auf den lokalen Rechner).

Exkurs: Plugins kann man übrigens auch über phpMyAdmin deaktivieren

Manches Mal kann es auch notwendig sein, Plugins zu deaktivieren, aber man hat keinen Zugriff mehr auf das Dashboard. In dem Fall kann man die Deaktivierung entweder per FTP oder über phpMyAdmin vornehmen.

Über phpMyAdmin funktioniert das wie folgt:

  • Zunächst sollten Sie eine Sicherung der Datenbank (z. B. über Export in phpMyAdmin) auf ihrem Computer erstellen.
  • In der Datenbanktabelle präfix_options (standardmäßig wp_options), in der Spalte option_name gibt es die Zeile mit dem Feldwert active_plugins.
  • In dieser Zeile in der Spalte option_value muss der Eintrag auf a:0:{} geändert werden (den Inhalt in den geschweiften Klammern {} nicht ändern).

Wenn man dann den Browser-Cache gelöscht hat, sollte eine Anmeldung im Dashboard wieder möglich sein.

Weitere Beiträge zum Thema

Fazit

Code Snippets ist ein tolles Plugin. Als Alternative zur Erstellung von Child Themes bietet das Plugin die Möglichkeit, kleine functions (Snippets) zu erstellen. Diese Snippets können ggfs. auch einfach deaktiviert werden. Sollte es aber mal ein Problem mit einem fehlerhaft programmierten Snippet geben, kann das problematisch werden. Aber auch in diesen Fällen kann man das korrigieren, wenn man die Möglichkeit hat, über phpMyAdmin auf die Datenbank zuzugreifen.


Mehr erfahren auf dieser Webseite

Zum Blog

Mehr erfahren auf unserer Webseite

Wir freuen uns über eine Kontaktaufnahme

Was hältst du davon?

Wir hoffen, dieser Beitrag hat dir gefallen und wir würden uns über einen Kommentar freuen. Auch über Erweiterungen, Korrekturen, Hinweise oder sonstige Anmerkungen freuen wir uns sehr.

Weitere interessante Beiträge rund um WordPress findest du hier

Schreibe einen Kommentar