web-dev-qa-db-fra.com

Coincé en mode maintenance

Je mets mon site en mode maintenance à l'aide de ce hook dans functions.php,

function activate_maintenance_mode() {
    //If the current user is NOT an 'Administrator' or NOT 'Super Admin' then display Maintenance Page.
    if ( !(current_user_can( 'administrator' ) ||  current_user_can( 'super admin' ))) {
        //Kill WordPress execution and display HTML maintenance message. 
        wp_die('<h1>Sitio en mantenimiento</h1><p>Nuestro sitio esta actualemente en mantenimiento. 
            <br /><strong>Ya volvemos!</strong></p>', 'mantenimiento');
    }
}
//Hooks the 'activate_maintenance_mode' function on to the 'get_header' action.
add_action('get_header', 'activate_maintenance_mode');

et maintenant je ne peux pas revenir en mode normal.

EDIT: Le problème devait provenir du plugin W3 Total Cache.

1
whitenoisedb

Puisque vous utilisez le plugin W3 Total Cache, So Le code HTML sera mis en cache dans le dossier wp-content/cache. Supprimez donc le dossier Cache du répertoire wp-content.

Maintenant, supprimez la fonction activate_maintenance_mode () et consultez le site maintenant ...

Si le problème persiste, supprimez le W3 total Cache Constant de wp-config.php, effacez les données de votre navigateur et consultez le site.

1
Jansha Mohammed

Je pense que le code est faux, vous utilisez essentiellement WP_die pour les super administrateurs lorsque vous dites:

if ( !(current_user_can( 'administrator' ) ||  current_user_can( 'super admin' )))

Je pense que le bon code devrait être

if ( !(current_user_can( 'administrator' ) &&  !(current_user_can( 'super admin' ))))

Pouvez-vous essayer ceci et laissez-moi savoir. Praveen

0
Praveen