„Es gab einen kritischen Fehler auf deiner Website.“ beheben – WordPress Anleitung

Wahrscheinlich bist du gerade ziemlich gestresst weil deine WordPress Seite nicht mehr funktioniert. Bevor es also losgeht, entspann dich und atme durch. Leg die Hektik und Panik ab, du bist an der richtigen Stelle angekommen. Ab jetzt wird ruhig und überlegt gearbeitet.

Vielleicht hast du WordPress selbst oder ein Plugin aktualisiert, ein Theme installiert oder sogar selbst am Code herumgespielt und jetzt geht nichts mehr. In diesem Beitrag dreht sich alles darum, wie du deine WordPress Installation reparieren kannst. Natürlich kann nicht jeder Fehler mit einer vorgefertigten Anleitung beschrieben und behoben werden, es gibt einfach zu viele Variablen und Fehlerquellen. Solltest du mithilfe dieses Beitrags dein Problem also nicht selbst lösen können, biete ich einen WordPress Notfall-Support an. 

Inhaltsverzeichnis

Begriffserklärung und benötigte Tools

Im Zuge dieses Beitrags werden Wörter wie FTP, PHPMyAdmin, MySQL oder PHP fallen. Hier also eine kurze Erklärung zu den Begriffen:

FTP Zugang

FTP steht für File Transfer Protocol und macht im vereinfachten Sinne nichts anderes als dir die Möglichkeit zu geben auf den Ordner in dem deine Website liegt zuzugreifen. Ein beliebtes FTP Tool welches ich auch hier in dieser Anleitung verwendete ist FileZilla. Das Tool kannst du dir direkt beim Hersteller kostenlos herunterladen, pass bei der Installation aber auf, hier wird leider gern zusätzliche Software zusätzlich installiert, man kann aber während der Installation die zusätzliche Software abwählen. Mac Nutzer können auf Cyberduck ausweichen.

Die Login-Informationen die du für den Zugriff per FTP brauchst bekommst du von deinem Hoster. Grundlegend benötigst du eine Serveradresse, einen Benutzernamen und ein Kennwort.

PHP

Bei PHP handelt es sich um eine der Programmiersprachen mit denen WordPress entwickelt wurde. PHP wird vom Server ausgeführt bevor deine WordPress Website ausgegeben wird. Kommt es während der Ausführung zu einem Problem wird deine Seite nicht mehr richtig ausgegeben.

MySQL

Deine Website speichert Daten unter anderem in einer sogenannten MySQL Website ab. Du kannst dir MySQL als ein organisiertes Archiv vorstellen in dem wichtige Einstellungen, der Text deiner Beiträge, Produkte oder Seiten gespeichert sind.

phpMyAdmin

Deine Datenbank kannst du mithilfe von Tools wie PhpMyAdmin visualisieren, Einträge suchen und bearbeiten. Einen Zugang zu PhpMyAdmin gibt dir normalerweise dein Hoster direkt. Such im Backend deines Hosters am besten nach dem Punkt „Datenkbank“ oder direkt nach „PhpMyAdmin“.

Erster Schritt: E-Mail Postfach prüfen

Klingt komisch, ist aber so. WordPress hat in den letzten Monaten beim Thema der technische Probleme nachgebessert und ein neues System implementiert, welches den Seitenbetreiber per E-Mail über Probleme informiert. Im Fall eines Ausfalls wird dann, sofern noch möglich, eine E-Mail mit dem Betreff „[Name von deiner Website] hat ein technisches Problem“ ausgeschickt die wie folgt aussieht.

In dieser E-Mail findest du den Link zum Wiederherstellungsmodus über den du dich eventuell wieder bei deiner WordPress Installation anmelden kannst. Klick jetzt auf diesen Link und melde dich mit deinen normalen Zugangsdaten an. Falls der Fehler im Frontend aufgetreten ist, kann der E-Mail über einen Besuch des Adminbereichs angestoßen werden. Die Erfahrung hat gezeigt, dass die rettende E-Mail oft gar nicht ankommt oder der Wiederherstellungsmodus einfach nicht funktioniert. Solltet Ihr Glück haben und euch im Wiederherstellungsmodus anmelden können, navigiert ihr einfach zum Punkt „Plugins“ im WP Backend. Dort sollte euch jetzt das Plugin angezeigt werden das Probleme macht. Deaktiviert das Plugin falls möglich oder macht ein Update auf die neueste Version. Falls möglich könntet Ihr es auch löschen und erneut installieren. Sollten diese Schritte keine Abhilfe schaffen, könntet Ihr noch eure genutzt PHP Version kontrollieren und diese ggf. auf eine neue Version aktualisieren. Ansonsten könnt Ihr diese Anleitung weiter verfolgen, vielleicht hilft dir einer der folgenden Punkte ja.

Wenn all das nicht klappt, könnt Ihr euch beim Entwickler der App melden oder auf Wunsch mich beauftragen der Sache genauer nachzugehen.

Debug Modus aktivieren

Von Haus aus zeigt uns WordPress nur „benutzerfreundliche“ Fehler. Das eigentliche technische Problem das für den Fehler verantwortlich ist wird ausgeblendet. Das hat viele Gründe, eine ist z.B. das Thema Sicherheit. In unserem Fall ist das jetzt aber egal, wir wollen wissen wo genauer der Fehler liegt. Hierfür müssen wir den sogenannten Debug Modus aktivieren. Dieser muss per FTP in der Datei wp-config.php aktiviert werden. Nutzt hierfür euren bevorzugten FTP Client und bearbeitet die File. Nachfolgend eine kurze Bilderserie wie das mit FileZilla in etwa funktioniert.

Jetzt kann es passieren, dass du nach einem bevorzugten Editor gefragt wirst. In dem Fall wählst du am besten das normale Notepad oder du holst dir z.B. SublimeText. Verwende auf keinen Fall Word, WordPad oder ähnliche Programme.

Im Editor angekommen suchen wir jetzt nach der Zeile define( ‚WP_DEBUG‘, false); und ändern diese auf define(‚WP_DEBUG‘, true); Jetzt speichern wir die Datei und bestätigen die Änderung anschließend noch direkt in FileZilla damit die Änderung hochgeladen wird.

Jetzt sollte der Debug Modus aktiv sein. Wenn du jetzt deine Seite aktualisierst, sollte eine genauere Fehlermeldung angezeigt werden.

Fehlermeldungen interpretieren

Jetzt wird’s wild. Wenn wir die Seite aktualisieren, werden uns handfeste Fehlermeldungen präsentiert. Die Schwierigkeit hieran ist ohne Programmierkenntnisse herauszufinden was einem diese Meldungen jetzt genau bringen. Am besten schauen wir uns mal ein kleines Beispiel an.

Der Debug Output sagt uns in diesem Fall, dass es einen Syntax Fehler in der Zeile 212 in der Datei unter /wp-content/plugins/osulzer-custom/osulzer-custom.php gibt. Ein Syntax Fehler bedeutet grundlegend, dass ein Zeichen an einer Stelle steht wo es nicht stehen sollte. Für uns ist das aber irrelevant da wir an dieser Stelle nur die Info benötigen welches Plugin das Problem macht. In unserem Fall ist es ein Stück Software das normalerweise natürlich nie Probleme macht, eine hauseigene Entwicklung von mir ( 😉 ). Die fehlerhafte Datei steckt im Ordner „osulzer-custom“. Wenn wir dieses Plugin deaktivieren, sollte unsere Seite wieder zugänglich sein. Wie genau deaktivieren wir aber ein Plugin wenn wir keinen Zugang zum WordPress Backend mehr haben?

Bevor wir weitermachen, vergiss nicht den Debug Modus nachdem du mit deinen arbeiten fertig bist wieder zu deaktivieren.

WordPress Plugins und Themes per FTP deaktivieren

Alle WordPress Erweiterungen kann man mittels FTP Zugang deaktivieren. Verbinde dich per FTP mit deinem Webspace und navigiere in den Ordner „wp-content“. Hier können wir jetzt entweder in den Ordner „plugins“ oder „themes“ springen. Im oben beschriebenen Beispiel lag der Fehler an einem Plugin, wir springen also in den gleichnamigen Ordner. Hier angekommen suchen wir jetzt nach dem Ordner Namens „osulzer-custom“. In diesem Ordner befindet sich die Datei die uns das ganze Kopfzerbrechen bereitet hat. Um das Plugin zu deaktivieren müssen wir den Ordnernamen ändern. Ich habe mir angewohnt immer ein „_“ vor den Namen zu setzen. Aus dem Ordner „osulzer-custom“ wird also „_osulzer-custom“.

Mit diesem Trick könnt Ihr alle Plugins und Themes die Ihr in eurer WordPress Installation nutzt ausschalten. Im schlimmsten Fall könnt Ihr damit auch alle Plugins deaktiveren, im Fall der Themes solltet Ihr eines der vorinstallierten Themes aktiv lassen, da eurer WordPress Installation sonst nichts im Frontend ausgeben kann.

Genutzte PHP Version kontrollieren

Sind die Probleme mit WordPress direkt nach der Aktualisierung eines deiner Plugins aufgetreten, kann es sein, dass der Fehler aufgrund einer inkompatiblen PHP Version auftritt. Um das zu testen kannst du dich bei deinem Hoster anmelden und dort nach einer Einstellung für die genutzte PHP Version suchen. Zum Zeitpunkt dieses Beitrags ist PHP in der Version 8.0 bzw. kürzlich in der Version 8.1 veröffentlicht worden. Weit verbreitet ist derzeit aber noch PHP 7.4. Wenn deine Website derzeit noch auf der Version 7.1 laufen, empfiehlt es sich jetzt auf 7.4 zu aktualisieren. Der Grund warum man nicht direkt die neueste Version nehmen sollte liegt in der Kompatibilität mit WordPress. Am oberen und unteren Ende der PHP Versionen können die meisten Probleme auftreten, die goldene Mitte sollte im Problemfall also Vorrang haben.  

Eine Übersicht der aktuellen PHP Versionen findest du unter: https://php.watch/versions

PHP Speicherlimit erhöhen

Wenn der Fehler auf deiner Website nur sporadisch auftritt oder direkt nach der Installation von Plugins wie WPML plötzlich auftauchte, kann es sein, dass das sogenannte PHP Memory Limit auf deinem Webserver zu niedrig angesetzt ist. Speziell bei normalen Webhosting- Verträgen stellt dir der Hoster standardmäßig nur wenig Arbeitsspeicher für die Ausführung von PHP Scripten zu Verfügung. Das Memory Limit kann entweder direkt beim Hoster oder auch über die von uns bereits zuvor bearbeitete wp-config.php File angepasst werden.

Die Erfahrung hat gezeigt, dass man mit 256MB an RAM die für die Ausführung von PHP Scripts verfügbar sind fast nie Probleme hat. Hat man mehr Arbeitsspeicher zur Verfügung, bzw. die Möglichkeit über seinen Hoster höhere Werte zu vergeben, kann man dies natürlich auch machen.

Um das WordPress PHP Speicherlimit anzuheben gehst du wie gewohnt per FTP auf das Hauptverzeichnis deiner WordPress Installation und bearbeitest die wp-config.php Datei. Füge dort direkt unter dem Punkt „define( ‚DB_COLLATE‘, “ );“ die folgende Zeile ein:

				
					define( 'WP_MEMORY_LIMIT', '256M' );
				
			

Ganz egal ist die zu Verfügung stehende Menge an Arbeitsspeicher dann aber auch wieder nicht. Das Speicherlimit kann nämlich auch als eine Art Obergrenze für deine WordPress Installation angesehen werden, wenn mal etwas schiefgeht oder deine Seite gehacked und für alternative Zwecke missbraucht wird.

Ein Plugin oder Theme macht weiterhin Probleme, was nun?

Wenn der Übeltäter identifiziert wurde, kann man von jetzt an recht gezielt vorgehen. Wenn die Probleme nach einem Update aufgetreten sind, hat die neueste Version die jetzt genutzt wird möglicherweise ein Problem. In dem Fall kannst du z.B. den Entwickler kontaktieren. Im Fall von Plugins die direkt aus dem Plugin Store von WordPress heruntergeladen wurden, gibt es auf der Detailseite des Plugins den Punkt „Support“. Dort kannst du über ein Forum mit anderen Nutzern des Plugins reden. Die Kontaktdaten des Entwicklers solltest du auch auf dieser Seite finden. Möglicherweise tummeln sich in dem Forum auch schon Leute die genau dasselbe Problem haben wie du. Optimal wäre es wenn du die Vorgänger-Version des Plugins findest und diese händisch installierst. Pass bei deiner Suche aber akribisch darauf auf, dass du Plugins nur von offiziellen Seiten des jeweiligen Entwicklers herunterladest. Installier auf keinen Fall Plugins die auf Seiten angeboten werden von denen du dir nicht 100% sicher bist das sie legitim sind. Im schlimmsten Fall installierst du dir ein Plugin mit einem netten Backdoor und hast ein paar Stunden später das nächste, höchstwahrscheinlich viel gröbere Problem an der Backe.

Leider passiert es immer wieder, dass WordPress Plugins nicht mehr weiterentwickelt werden und dadurch mit neuen Versionen von WordPress inkompatibel werden. In dem Fall wirst du wenig Glück damit haben, den Entwickler des Plugins anzuschreiben und musst dich wohl oder übel nach einer Alternative umsehen. Vielleicht hast du ja Glück und findest im riesigen Ecosystem rund um WordPress eine alternative Lösung.

Tipps für die Zukunft

Solltest du es geschafft haben deine Seite wieder zum Leben zu erwecken, stellst du dir vielleicht die Frage was du in Zukunft besser machen kannst um vorbereiteter in Problemszenarien zu gehen. Besonders empfehlenswert ist die Erstellung eines Backups bevor du an Änderungen deiner Seite arbeitest. Backups kannst du entweder händisch per FTP und phpMyAdmin, eventuell direkt über den Hoster oder auf Wunsch auch direkt über ein WordPress Plugin erstellen. Ich selbst nutze gerne UpdraftPlus. In der kostenlosen Version kannst du auf Knopfdruck ein Backup deiner Seite erstellen welches deine Datenbank, Plugins und Themes absichert. Die Backups werden im wp-content Folder abgelegt.

Der Optimale Arbeitsablauf für die Zukunft wäre also folgender:

  1. Komplettes Backup der Seite erstellen und herunterladen
  2. Änderungen vornehmen
  3. Bei Problemen Backup wiederherstellen

Für die Zukunft bist du mit diesem Arbeitsablauf also für den Ernstfall vorbereitet.

Nichts hat funktioniert, was kann ich noch tun?

Du kannst dich gerne direkt mit deinem Problem an mich wenden. Alle Infos zu meinem Angebot findest du auf der Seite „WordPress Notfallhilfe

WordPress Kategorie: Zeige zusätzliche Beiträge aus weiterer Kategorie

Der heutige Beitrag beschäftigt sich mit der Lösung für ein recht spezifisches Problem. Möchte man in einer WordPress Kategorie Beiträge aus einer komplett unabhängigen Kategorie zusätzlich anzeigen kann der folgende Code verwendet werden. Natürlich würde es mehr Sinn machen den Beitrag selbst in beide Kategorien zu stecken, manchmal ist dies aber aufgrund des Seitenaufbaus nicht ohne weiteres möglich bzw. logisch.

Den nachfolgenden Code könnt Ihr z.B. als Snippet über ein passendes Plugin aktivieren, in die functions.php eures Child-Themes legen oder in euer eigenes Plugin verfrachten. Letzteres sollte die Go-To Lösung sein.

				
					/**
 * Zeige Beiträge aus einer separaten Kategorie in der gewünschten Kategorie
 * @param $query
 */
function osulzer_top_news_category( $query ) {
    if( $query->is_category() && isset($query->query['category_name']) && $query->query['category_name'] == 'slug-der-gewuenschten-kategorie' ) {
        $query->set( 'category__in', [1, 2, 3] ); // ids der kategorien aus denen Beiträge auch hier angezeigt werden sollen
        $query->set( 'category_name', false );  // benötigt um nicht nur Beiträge aus der aktuellen Kategorie anzuzeigen
        $query->set( 'include_children', false ); // kann entfernt werden, gibt an ob auch Beiträge aus Untergruppen der aktuellen Kategorie angezeigt werden sollen
    }
}

add_action( 'pre_get_posts', 'osulzer_top_news_category' ); // führt den code aus bevor die Posts aus der Datenbank abgefragt werden

				
			
Kontakt
Ihre Daten werden ausschließlich zur Bearbeitung Ihrer Anfrage verarbeitet. Mehr Informationen findest du in unserer Datenschutzerklärung

Bürozeiten:
Montag – Freitag: 9 – 19 Uhr
Samstag: 9 – 16 Uhr

Im Notfall auch am Wochenende erreichbar