WordPress Datenbank-Error mit eigenem Design

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 9 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

Error 404-Seiten gehören zum guten Ton und haben sich durchgesetzt, zumindest wenn man ein rundum gutes Design erstellt.
Seit der Version 2.3.2 kann WordPress zusätzliche eine eigene Datenbank-Fehlerseite ausgeben, passend zum persönlichen Geschmack, siehe dazu auch die Update-Information.

WordPress DB Error Screenshot

Aber erstmal, wie macht man eine eigene DB-Error-Seite.

  1. PHP-Datei mir allen nötigen Inhalten erstellen und db-error.php nennen.
  2. Die Datei nach wp-content kopieren, nicht in ein Unterverzeichnis oder das aktuelle Theme!
  3. Das war's, denn WordPress erkennt die Datei und nutzt diese dann bei einem Datenbankfehler.

Beispiel für ein einfache Ausgabe in wp-content


<html>
	<head>
		<title>Databank Fehler</title>
	</head>

	<body>
		<h2>Oops... Datenbankfehler</h2>
		<p>Entschuldigung, aber es scheint eine Datenbankproblem vorzuliegen.<br />Bitte versuche es doch in wenigen Augenblicken noch einmal.</p>
		<p>Vielen dank f&uuml;r dein Verst&auml;ndnis</p>
	</body>
</html>

Nachfolgender Inhalt gelöscht, Warum? - siehe Kommentar 3

Nun ist es aber WordPress so aufgebaut, dass alle Daten zum Design in Ordner wp-content/themes/*theme-name*/ abgebildet werden, so zum Beispiel auch mit der Error 404-Seite. Will man also das Design wechseln und die DB-Fehlerseite ebenso an das neue Design anpassen, dann muss man immer die Datei im Ordner wp-content anpassen, quasi nicht vergessen.

Mit einer kleinen PHP-Zeile kann man aber die Datei immer dort liegen lassen und ändert die DB-Error-Seite nur im Theme-Verzeichnis. Auch dazu eine kurze Erläuterung.

  1. Den folgenden Code kopieren und damit die Datei db-error.php erstellen.
    
    	<?php
    	require_once '../wp-config.php';
    	include (TEMPLATEPATH . '/db-error.php');
    	?>
    	
  2. Diese Datei im Verzeichnis /wp-content/ der WordPress-Installation auf dem Server ablegen.
  3. Im folgenden startest du mit einer Seite deines Themes, beispielsweise die 404.php oder page.php und speicherst sie als db-error.php. Im Anschluss ein kleines Beispiel.
  4. Diese Datei passt du an deine Bedürfnisse an und hinterlegst dort die Information für den Besucher, wenn die Datenbank nicht verfügbar ist.
  5. Diese Datei kopierst du in das Theme-Verzeichnis, welches du aktuell verwendest.

Beispiel für die db-error.php im Theme

Das folgende Beispiel ist extrem einfach gehalten und ist an das Basis-Theme angelegt, welches damit erweiterbar ist.


<?php get_header(); ?>

		<div class="post">
			<h2>Oops... Datenbankfehler</h2>
			<p>Entschuldigung, aber es scheint eine Datenbankproblem vorzuliegen.<br />Bitte versuche es doch in wenigen Augenblicken noch einmal.</p>
			<p>Vielen dank f&uuml;r dein Verst&auml;ndnis</p>
		</div>
			
<?php get_footer(); ?>

Um die Seite im Browser zu testen, ein einfacher Aufruf genügt - als Beispiel meine aktuelle DB-Error-Seite.

15 Comments

  1. Klingt ja interessant. Nur, um die Datei uns dem Theme-Verzeichnis aufzurufen, muss ich da nicht auch Datenbank-Verbindung haben? Die Konstante "TEMPLATEPATH" enthält doch eine Variable, die ihren Aktuellen Wert aus den Settings in der Datenbank erhält, oder liege ich da falsch?

    Selbst, wenn ich den Pfad tum Theme fest in die Datei schreibe... Meiner Meinung nach bringt das nicht viel. Zumindest die Inhalte der Sidebar werden doch auch dynamisch aus der DB geladen. Gut, man kann die Sidebar weglassen, aber dann kann ich die Fehlerseite gleich statisch einrichten und brauche nicht ins Theme-Verzeichnis.

    Aber die Möglichkeit, auch Datenbank-Fehler mit einer eigenen Fehlerseite abzufangen, ist in der Tat brauchbar. Das überlege ich mir nun auch.

  2. Gewonnnen!

    Hallo Markus,
    ich wollte mal sehen und prüfen, wie und ob überhaupt die Leser die Artikel lesen. Dir ist der Fehler aufgefallen, zumindest bist du der Erste der dementsprechend kommentiert.
    Bitte sende mir per Mail deine Adressdaten, dass ich den Gewinn - ein Buch zum Thema (M.Jendryschik, Einführung in XHTML, CSS und Webdesign) - versenden kann.

    Herzlichen Glückwunsch.

    Ich hoffe, dass die Anderen es verstehen und ich die klassische Verlosung mal anders gestallten wollte und da hat sich die Idee gerade angeboten.
    LG Frank

  3. Hallo Frank

    Na da bin ich aber überrascht 🙂 Aber ich freue mich auf das Buch, vielen Dank.
    Die Adressdaten habe ich eben rausgeschickt.

    Keep it Country,
    Markus

  4. hallo

    da ich hier ja so aufs glatteis geführt worden bin, habe ich es halt nicht abgeschrieben *feix*
    sondern selber gemacht 😉

    nun hier für alle eine db-error.php die ich erstellt habe, damit sie zum blog passt.

    <?php require_once '../wp-config.php'; ?>
    
    <?php get_header(); ?>
    
    

    Oops... Datenbankfehler

    Entschuldigung, aber es scheint eine Datenbankproblem vorzuliegen.
    Bitte versuche es doch in wenigen Augenblicken noch einmal.

    Vielen dank für dein Verständnis


    <?php printf(__('Zurück zu %s'), get_bloginfo('title', 'display' )); ?>

    <?php get_footer(); ?>

    vielleicht möchte es jemand nutzen, so schaut es aus
    db-error.php

  5. frank... hilfe, ich glaube der code wird nicht als code sondern interpretiert, wenn dem so ist, bitte besser meinen kommentar aus 😉

  6. hmm, da haste natürlich recht *rotwerd*
    also doch eine einfach html fehler seite oder halt etwas nachgebildet zum blog design...

  7. Hallo Frank!

    Ich würde gerne die Fehler-Seite von WordPress (z.B. Meldung in der deutschen Version: "Fehler: Bitte gib einen Kommentar ein.") bei fehlenden Kommentar-Angaben dem eigenen Layout anpassen, bzw. wenn möglich unabhängig vom Theme machen. Bei deinem Blog passiert in dem Fall anscheinend nichts. Könntest du für den Fall auch ein Beispiel/Anleitung zeigen.

    Gruß
    Leo

Comments are closed.