Wie kann ich zum Anzeigen von zwischengespeicherten Seiten zurückkehren, wenn keine databaseverbindung verfügbar ist?

Ich weiß nicht viel darüber, wie Super-Cache funktioniert, aber ich sehe zumindest, dass ich die meisten Seiten meiner Site im Ordner wp-content / cache / supercache finden kann. Wenn nun WordPress keine Verbindung mit der database herstellen kann, weil der MySQL Server ausgefallen ist (wie es momentan der Fall ist), sollte es eine Fehlermeldung anzeigen oder sollte es die zwischengespeicherten Seiten anzeigen?

Ich würde denken, dass es unabhängig davon funktionieren sollte, ob die Verbindung hergestellt werden kann oder nicht. Gibt es eine Option oder eine Flagge, die ich vermisse?

Außerdem sieht es so aus, als ob die Hauptseite der Site nicht im Cache gespeichert ist, während alles andere ist. Gibt es eine Möglichkeit, damit umzugehen? Offensichtlich kann ich im Moment nichts dagegen tun, da die database ausfällt, aber für die Zukunft?

Solutions Collecting From Web of "Wie kann ich zum Anzeigen von zwischengespeicherten Seiten zurückkehren, wenn keine databaseverbindung verfügbar ist?"

Dies ist eine Antwort auf Ihre zweite Frage – “Es sieht auch so aus, als ob die Hauptseite der Site nicht im Cache gespeichert ist, während alles andere ist. Gibt es eine Möglichkeit, damit umzugehen?”

Gehen Sie in Ihrem Backend zu Einstellungen -> WP Super Cache und wählen Sie die Registerkarte Erweitert . Suchen Sie nach dem Abschnitt mit dem Titel Akzeptierte Dateinamen und abgelehnte URIs . Wenn die Front Page (is_front_page) oder Home (is_home) ist, deaktivieren Sie sie und klicken Save dann auf die Schaltfläche Save . Dadurch sollte die Startseite / Homepage Ihrer Site zwischengespeichert werden.

Hinweis: Dies setzt voraus, dass Sie das WP Super Cache-Plugin verwenden, das ich aus den Tags der Frage entnehme, die Sie sind.

(Ich habe das jedoch nicht getestet, daher kann Ihre Laufleistung variieren.)

Da Sie bereits eine zwischengespeicherte Version Ihrer Site haben, kann ich den Teil überspringen, der erklärt, wie man das einrichtet und zu den einfacheren Sachen übergeht – die PHP-Sachen!

Sie möchten die mysql_ping() function am tippy top Ihrer header.php-Datei in Ihrem aktuellen Theme (oder vorzugsweise untergeordneten mysql_ping() einfügen. Es sollte ungefähr so ​​aussehen:

 < ?php set_time_limit(0); $conn = mysql_connect('localhost', 'mysqluser', 'mypass'); $db = mysql_select_db('mydb'); /* Assuming this query will take a long time */ $result = mysql_query($sql); if (!$result) { echo 'Query #1 failed, exiting.'; exit; } /* If nothing still, take the user to the cache */ if (!mysql_ping($conn)) { header( 'Location: http://www.yoursite.com/new_page.html' )}; } ?> 

Da die header function dort vorhanden ist, möchten Sie sicherstellen, dass dies vor allem anderen angezeigt wird, einschließlich eines oder -Tags.