Benutzerdefinierte Wartungsseite

7

Gibt es eine Möglichkeit, eine benutzerdefinierte Wartungsseite aus dem Themenordner hinzuzufügen?

Ich habe den Code für den aktivierten Wartungsmodus, aber ich kann das Styling nicht bekommen.

function activate_maintenance_mode() {
    if ( !(current_user_can( 'administrator' ) ||  current_user_can( 'super admin' ))) {
        wp_die(
        '<h1>Website Under Maintenance</h1><p>Hi, our Website is currently undergoing scheduled maintenance.
        Please check back very soon.<br /><strong>Sorry for the inconvenience!</strong></p>', 'Maintenance Mode');
    }
}
add_action('get_header', 'activate_maintenance_mode');

Vielen Dank im Voraus, Nikola.

Nikola
quelle
Fragen Sie, wie Sie eine Designvorlage als Wartungsseite verwenden können?
Totels

Antworten:

8

Wenn WordPress in den Wartungsmodus wechselt, fügt es .maintenancedem Stammverzeichnis eine Datei mit dem Namen hinzu , während die Wartung durchgeführt wird, und wird anschließend entfernt. Sie können eine Funktion in Ihr Thema schreiben functions.php, die nach dieser Datei sucht und eine benutzerdefinierte Wartungsseite aus dem Thema lädt.

if ( ! function_exists( 'wpse84987_maintenance_mode' ) ) {
    function wpse84987_maintenance_mode() {
        if ( file_exists( ABSPATH . '.maintenance' ) ) {
            include_once get_stylesheet_directory() . '/maintenance.php';
            die();
        }
    }
    add_action( 'wp', 'wpse84987_maintenance_mode' );
}

Fügen Sie Ihren Wartungsinhalt in die maintenance.phpSeite in Ihrem Themenordner ein, und Sie können ihn nach Belieben formatieren.

Wenn Sie die wp_dieFunktion verwenden, erhalten Sie das weiße Standardfeld auf grauem Hintergrund. Auf diese Weise können Sie Ihre Wartungsseite wie jede andere Themenseite gestalten.

UPDATE : Sie können dies auch außerhalb des Themas tun, indem Sie maintenance.phpdas wp-contentVerzeichnis (oder wo immer Sie WP_CONTENT_DIRdarauf verweisen möchten) als Drop-In-Plugin hinzufügen . Wenn WP von innen nach dem Wartungsmodus wp_maintenance()sucht, sucht es nach dieser Datei und lädt sie, falls vorhanden, oder lädt ihre eigene, wenn nicht. Wenn sich die Site nicht im Wartungsmodus befindet oder länger als 10 Minuten im Modus ist, wird 'wartung.php' nicht geladen, obwohl sich die Site technisch noch im Wartungsmodus befindet. WordPress 4.6 führt den Filter 'enable_maintenance_mode' ein , der von einem Tool (ab) verwendet werden kann wp-cli, um die Prüfung für das Drop-In zu erzwingen, und mit dem Sie einen CLI-Befehl aus Ihrer Wartungsdatei ausführen können.

Morgan Estes
quelle