Czasami musisz wprowadzić na stronie WordPress poprawki, aktualizacje lub testy, ale nie chcesz, aby użytkownicy widzieli niedziałającą witrynę.
Najprostsze rozwiązanie to tryb konserwacji (maintenance mode).
Wiele wtyczek oferuje taką funkcję, ale… wcale nie musisz ich instalować!
W tym poradniku pokażę Ci, jak włączyć i wyłączyć tryb konserwacji w WordPress bez żadnej wtyczki, używając jedynie kilku linijek kodu w pliku functions.php lub we własnej wtyczce.
Krok 1: Dodaj prosty kod trybu konserwacji
Otwórz plik functions.php w aktywnym motywie (lub utwórz prostą wtyczkę) i dodaj:
function pp_maintenance_mode() {
if ( ! current_user_can( 'manage_options' ) || ! is_user_logged_in() ) {
wp_die(
'<h1>Strona w konserwacji</h1><p>Trwają prace techniczne. Spróbuj ponownie za kilka minut.</p>',
'Przerwa techniczna',
array( 'response' => 503 )
);
}
}
add_action( 'get_header', 'pp_maintenance_mode' );
Co robi ten kod:
- Wyświetla komunikat o konserwacji dla wszystkich niezalogowanych użytkowników,
- Administratorzy (czyli Ty) nadal mogą normalnie przeglądać stronę,
- Ustawia kod odpowiedzi HTTP
503 (czyli „Service Unavailable”) – co informuje wyszukiwarki, że przerwa jest tymczasowa.
Krok 2: Dostosuj wygląd strony konserwacji
Zamiast prostego tekstu HTML możesz wyświetlić własny szablon lub stronę statyczną.
Przykład z użyciem pliku maintenance.html w katalogu motywu:
function pp_maintenance_mode_custom() {
if ( ! current_user_can( 'manage_options' ) || ! is_user_logged_in() ) {
$file = get_template_directory() . '/maintenance.html';
if ( file_exists( $file ) ) {
include( $file );
die();
} else {
wp_die( '<h1>Witryna w konserwacji</h1><p>Zapraszamy wkrótce!</p>', 'Przerwa techniczna', array( 'response' => 503 ) );
}
}
}
add_action( 'get_header', 'pp_maintenance_mode_custom' );
Teraz możesz stworzyć dowolny plik maintenance.html z grafiką, logo i przyjaznym komunikatem dla odwiedzających.
Krok 3: Alternatywne rozwiązanie – plik .maintenance
WordPress ma również wbudowany mechanizm maintenance mode, który włącza się automatycznie podczas aktualizacji systemu.
Możesz z niego skorzystać ręcznie – wystarczy w głównym katalogu WordPressa (tam, gdzie znajduje się wp-config.php) utworzyć plik .maintenance z taką zawartością:
<?php
$upgrading = time();
Aby wyłączyć tryb konserwacji – po prostu usuń ten plik.
⚠️ Uwaga: ten tryb wyłącza stronę całkowicie, także dla administratorów.
Krok 4: Co warto jeszcze dodać
- Dodaj do pliku
robots.txt tymczasową blokadę indeksowania: User-agent: * Disallow: / Dzięki temu wyszukiwarki nie będą próbowały indeksować strony podczas konserwacji.
- Możesz dodać automatyczne włączenie/wyłączenie trybu konserwacji przy wdrożeniach (np. w skryptach CI/CD lub deploy.sh).
Podsumowanie
Tryb konserwacji bez wtyczek to prosty, szybki i bezpieczny sposób na ochronę użytkowników przed błędami podczas aktualizacji lub zmian.
Dzięki kilku linijkom kodu możesz w pełni kontrolować komunikat, wygląd i czas trwania przerwy technicznej.
To idealne rozwiązanie dla developerów, którzy chcą mieć pełną kontrolę nad swoim WordPressem.