web-dev-qa-db-fra.com

Comment limiter les pages WordPress lors des mises à jour?

Je vais effectuer des mises à niveau de la conception et du contenu de mon site Wordpress. Pendant ce temps, je veux seulement que la page d'accueil soit disponible. Y a-t-il un bon moyen de le verrouiller (via un plug-in, etc.).

J'ai du mal à trouver des réponses de Google.

Merci Jason

2
Jason

Voici un petit bout de code que j'ai utilisé pour mon site alors qu'il était en construction

<?php
/* ROUGH METHOD OF DENY ACCESS */
    $underconstruct = array(121, 46, 124, 97);
    if(!is_user_logged_in() && !in_array(get_the_ID(), $underconstruct)) {
        wp_redirect(get_permalink(121));
        exit();
    }
?>

Je mets ceci en haut de mon header.php.
Le tableau $ underconstruct correspond aux identifiants de page/publication que tous les utilisateurs non connectés peuvent voir. S'ils ne sont pas connectés et ne figurent pas sur l'une des pages qu'ils devraient être, ils sont redirigés. Si l'utilisateur est connecté, tout se déroulera normalement.

0
Evan Yeung

WordPress étant une application Web dynamique, il est difficile d'avoir votre page d'accueil disponible lorsque tout le reste est mis à jour.

Chaque fois que vous exécutez une mise à jour pour un plugin ou un noyau WordPress, il déclenche son mode de maintenance. Cela affiche la page 'brièvement indisponible'.

Même en utilisant l'approche ci-dessus, le visiteur verra la page de maintenance standard s'il tente de visiter le site pendant l'exécution du script de mise à jour.

Je pense que la meilleure approche consiste à créer votre propre fichier maintenance.php, ce qui est préférable à une page statique.

.. NB Je ne fais que montrer une capture d'écran de ma page de maintenance pour vous donner une idée de ce qui pourrait être réalisé. enter image description here

Vous pouvez voir mon maintenance.php en action

Mode maintenance Pour mettre WordPress en mode maintenance, créez un fichier appelé .maintenance dans votre dossier /wordpress.

J'ai toujours le mien enregistré en tant que aaaa.maintenance afin que je puisse le trouver.

Mode maintenance - Utilisateurs connectés autorisés.
Cette étape permet aux utilisateurs connectés d’accéder à WP-admin et de visiter le serveur frontal.

Editez le aaaa.maintenance et insérez ce code:

<?php
function is_user_logged_in() {
$loggedin = false;
foreach ( (array) $_COOKIE as $cookie => $value ) {
    if ( stristr($cookie, 'wordpress_logged_in_') )
        $loggedin = true;
}
return $loggedin;
}
if ( ! stristr($_SERVER['REQUEST_URI'], '/wp-admin') && ! stristr($_SERVER['REQUEST_URI'],         '/wp-login.php') && ! is_user_logged_in() )
$upgrading = time();
?>

Créez votre propre maintenance.php
Sous wp-content, créez un fichier appelé maintenance.php

Ouvrez le fichier et ajoutez ce code:

<?php
$protocol = $_SERVER["SERVER_PROTOCOL"];
if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol )
    $protocol = 'HTTP/1.0';
header( "$protocol 503 Service Unavailable", true, 503 );
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<!--- insert HTML here including hard coding your CSS -->

</body>
</html>
<?php die(); ?>

Assurez-vous que le bas du fichier a la <?php die(); ?>

Alors maintenant vous avez votre propre page statique que vous pouvez invoquer chaque fois que vous renommez aaaa.maintenance en .maintenance

et vous pouvez visiter /wp-admin même si vous n'êtes pas connecté.

0
Damien