web-dev-qa-db-fra.com

Page de maintenance personnalisée

Est-il possible d'ajouter une page de maintenance personnalisée à partir du dossier de thèmes?

J'ai le code d'activation du mode maintenance mais je n'arrive pas à obtenir le style.

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');

Merci d'avance, Nikola.

7
Nikola

Lorsque WordPress passe en mode de maintenance, il ajoute un fichier nommé .maintenance au répertoire racine pendant la maintenance, puis il est supprimé. Vous pouvez écrire une fonction dans le functions.php de votre thème qui recherche ce fichier et charge une page de maintenance personnalisée à partir du thème.

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' );
}

Placez votre contenu de maintenance dans la page maintenance.php dans votre dossier de thèmes et vous êtes prêt à en créer le style comme vous le souhaitez.

Si vous utilisez la fonction wp_die, vous obtenez la boîte blanche standard sur fond gris. Cela vous permet de personnaliser votre page de maintenance comme vous le feriez avec une autre page de thème.

UPDATE: Vous pouvez également le faire en dehors du thème en ajoutant maintenance.php au répertoire wp-content (ou à l'endroit où vous avez défini WP_CONTENT_DIR comme pointeur) en tant que plug-in à insertion immédiate. Lorsque WP vérifie le mode de maintenance à partir de wp_maintenance() , il recherchera ce fichier et le chargera s'il est présent, ou chargera le sien sinon. Si le site n'est pas en mode maintenance ou y est resté plus de 10 minutes, 'maintenance.php' ne se chargera pas même si le site est techniquement toujours en mode maintenance. WordPress 4.6 introduit le filtre 'enable_maintenance_mode' , qui peut être utilisé par un outil tel que wp-cli pour forcer la vérification du compte rendu et vous autoriserait à exécuter une commande CLI à partir de votre fichier de maintenance.

8
Morgan Estes