Für WordPress existieren einige “Maintenance Mode”-Plugins, welche die komplette Seite sperren.
Oft möchte man während einer Wartung allerdings nur Änderungen an der Datenbank verhindern während die Seite für Besucher weiterhin angezeigt werden soll.
Der Artikel WordPress Maintenance Mode Without a Plugin Part 3 beschreibt den umgekehrten Ansatz – das Backend bleibt aktiv während Frontend Zugriffe verboten werden.
Dieser Ansatz muss also nur noch entsprechend angepasst werden, sodass lediglich das Backend gesperrt wird, während Frontend-Zugriffe weiterhin funktionieren.
WordPress Login Sperre einrichten
Dazu erstellt man im WordPress Hauptverzeichnis die Datei .maintenance
mit folgendem Inhalt:
<?php
if ( stristr($_SERVER['REQUEST_URI'], '/wp-admin') || stristr($_SERVER['REQUEST_URI'], '/wp-login.php') )
$upgrading = time();
?>
Möchte man die Meldung noch aussagekräftiger gestalten, kann man die Datei wp-content/maintenance.php
erstellen. Beispielinhalt:
<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de-DE">
<?php $heading = 'Wartungsarbeiten - Maintenance' ?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel='stylesheet' id='login-css' href='/wp-admin/css/login.css' type='text/css' media='all' />
<link rel='stylesheet' id='colors-fresh-css' href='/wp-admin/css/colors-fresh.css' type='text/css' media='all' />
<title><?php echo $heading; ?></title>
</head>
<body>
<div style="margin:0px auto; max-width:960px;" >
<h1><?php echo $heading; ?></h1>
<br/>
<h2><em>DEUTSCH:</em> Administrationsbereich temporär gesperrt</h2>
<p>Aufgrund von Wartungsarbeiten dürfen derzeit keine Änderungen vorgenommen werden. Daher ist der Zugang zur WordPress Verwaltungsoberfläche gesperrt.</p>
<br/>
<h2><em>ENGLISH:</em> Admin-Interface temporarly locked</h2>
<p>Due to scheduled maintenance changes are currently disallowed. Thus login to the WordPress backend is denied. </p>
</div>
</body>
</html>
Das Beispiel bindet die gleichen CSS Dateien ein, wie das WordPress Anmeldeformular und sorgt somit für die Verwendung der bekannten Schriftart.
Es kann natürlich beliebig optimiert werden. Einge Möglichkeit wäre die Sprache je nach Locale des Besuchers zu setzen.