PHP 8.6 wychodzi 19 listopada. 39 na 100 wtyczek WordPressa ma w kodzie coś przestarzałego
Nowe PHP oznacza część popularnych wtyczek jako przestarzałe, w tym WooCommerce, Elementor i Yoast. Co to naprawdę znaczy, trzy zmiany, które mogą dotknąć Twojej strony od razu, i dlaczego listopad to najgorszy moment na przesiadkę.

W skrócie
19 listopada 2026 wychodzi PHP 8.6. Tydzień przed premierą ktoś przebadał sto najpopularniejszych wtyczek WordPressa na wersji kandydującej i znalazł kod oznaczony jako przestarzały w trzydziestu dziewięciu z nich. Są wśród nich WooCommerce, Elementor i Yoast, czyli wtyczki z milionami instalacji. Brzmi groźnie, a nie jest, i właśnie o to chodzi w tym tekście. Oznaczenie jako przestarzałe nie psuje niczego dzisiaj. Kod działa dalej, a konsekwencje przychodzą dopiero z PHP 9. Realnie mogą Cię dotknąć trzy inne zmiany, z których jedna potrafi zgubić koszyk klienta wracającego od operatora płatności. Rekomendacja na koniec jest prosta: nie przechodź teraz. Premiera wypada w środku sezonu przedświątecznego, osiem dni przed Black Friday, a to najgorszy możliwy moment na zmianę wersji interpretera.
Przestarzałe nie znaczy zepsute
To rozróżnienie decyduje o tym, czy ten artykuł Cię zaniepokoi, czy uspokoi.
Gdy twórcy PHP uznają jakąś funkcję za przestarzałą, kod nadal się wykonuje i strona działa tak samo jak wcześniej. Zmienia się jedno: interpreter zaczyna przy każdym użyciu zapisywać ostrzeżenie. Jeśli masz wyłączone logowanie diagnostyczne, nawet tego nie zauważysz.
Prawdziwy koszt pojawia się w dwóch miejscach. Po pierwsze, przy włączonym trybie diagnostycznym plik dziennika potrafi urosnąć o setki megabajtów w tydzień, bo ostrzeżenie zapisuje się przy każdym żądaniu. Po drugie, i ważniejsze, w PHP 9 te same konstrukcje przestaną działać i zamienią się w błędy krytyczne. To jest zapowiedź, nie wyrok, ale zapowiedź z konkretnym terminem.
Innymi słowy: masz czas, ale wiesz już, na co.
Badanie, czyli skąd te 39 na 100
Liczba nie jest szacunkiem. Pochodzi z testu przeprowadzonego 28 października 2026 na wersji kandydującej PHP 8.6 i WordPressie 7.1.1.
Metoda była trzystopniowa. Najpierw sprawdzenie składni wszystkich plików, czyli 55 760 plików PHP ze stu najpopularniejszych wtyczek z katalogu WordPress.org. Potem przeszukanie kodu pod kątem wywołań funkcji oznaczonych w 8.6 jako przestarzałe. Na końcu uruchomienie każdej wtyczki osobno na działającej instalacji i otwarcie strony głównej, wpisu, kokpitu oraz listy wtyczek.
Najczęstsze znaleziska wyglądają tak:
| Konstrukcja | Liczba wystąpień |
|---|---|
spl_object_hash() |
58 |
| wartość zwracana z konstruktora | 55 |
is_integer() |
28 |
namespace jako stała klasy |
12 |
Dwie pierwsze pozycje warto rozumieć, bo tłumaczą skalę. Zwracanie czegokolwiek z konstruktora było zawsze bezsensowne, bo PHP i tak tę wartość wyrzucał w milczeniu. Dopiero teraz zaczyna o tym mówić. Z kolei is_integer() to po prostu dłuższa nazwa dla is_int(), utrzymywana przez lata dla zgodności. Żadna z tych rzeczy nie jest błędem w kodzie wtyczki, to raczej pozostałości po epoce, w której PHP było bardziej wyrozumiałe.
Dane z badania są opublikowane w postaci plików do pobrania na otwartej licencji, więc każdy może je sprawdzić samodzielnie. To rzadkość przy tego typu doniesieniach i powód, dla którego traktuję tę liczbę poważnie.
Trzy zmiany, które mogą dotknąć Twojej strony od razu
Tu zaczyna się część, która naprawdę wymaga uwagi. W przeciwieństwie do oznaczeń przestarzałości, te trzy rzeczy zmieniają zachowanie od pierwszego dnia.
Bezpieczniejsze domyślne ustawienia sesji
PHP 8.6 zmienia trzy domyślne wartości dotyczące ciasteczek sesyjnych. Tryb ścisły zostaje włączony, co blokuje podszywanie się pod cudzą sesję. Ciasteczko sesyjne przestaje być dostępne dla skryptów w przeglądarce, co ogranicza skutki ataków przez wstrzyknięty kod. Atrybut określający wysyłanie ciasteczka między witrynami dostaje wartość Lax.
Dwie pierwsze zmiany to czysty zysk i nie wymagają z Twojej strony niczego. Trzecia jest tą, na którą trzeba uważać w sklepie.
Wartość Lax oznacza, że przeglądarka dołączy ciasteczko sesyjne przy zwykłym przejściu z obcej witryny, ale nie dołączy go, gdy ta witryna odeśle użytkownika metodą POST. Część operatorów płatności wraca właśnie w ten sposób. Efekt bywa taki, że klient kończy płatność, wraca do sklepu i trafia na pustą sesję, bez koszyka i bez potwierdzenia zamówienia. Pieniądze są pobrane, a klient nie widzi, że cokolwiek się udało.
Jeśli prowadzisz sklep, to jest jedyny punkt z tego artykułu, który musisz przetestować osobiście, przechodząc pełną ścieżkę płatności po zmianie wersji.
Limit łańcucha filtrów przy odczycie plików
PHP pozwalało łączyć dowolnie wiele filtrów przetwarzających strumień danych. Brzmi niewinnie, ale ta możliwość była realnym narzędziem w atakach polegających na zmuszeniu aplikacji do wczytania cudzego pliku, a potem na wykonaniu kodu. Pisaliśmy o takiej podatności przy okazji krytycznej dziury w WordPressie 7.1.2.
Od 8.6 łańcuch ogranicza się do szesnastu filtrów. Dla normalnego kodu to limit, którego nikt nie dotknie. Dla atakującego to zamknięcie wygodnej drogi.
Szybsze połączenia wychodzące
Dotąd przy każdym połączeniu szyfrowanym PHP przeprowadzało pełne uzgadnianie od zera. Teraz potrafi wznowić wcześniejszą sesję. Zysk zobaczą przede wszystkim strony, które często odpytują zewnętrzne usługi: integracje z kurierami, systemy płatności, synchronizacja stanów magazynowych. Im więcej takich wywołań, tym wyraźniejsza różnica.
Kiedy przechodzić
Nie teraz, i to z powodu, który nie ma nic wspólnego z jakością samego wydania.
PHP 8.6 pojawia się 19 listopada, osiem dni przed Black Friday. Przyjęta w branży zasada mówi, że na dwa tygodnie przed szczytem sprzedaży do sklepu wdraża się wyłącznie krytyczne poprawki bezpieczeństwa. Zmiana wersji interpretera jest przeciwieństwem krytycznej poprawki. To duża zmiana, która dotyka wszystkiego naraz, a jej skutki uboczne najchętniej ujawniają się pod obciążeniem.
We wrześniowym artykule o wyborze wersji PHP pisaliśmy, że sensowny moment na 8.6 to wiosna 2027. Badanie wtyczek tę rekomendację potwierdza. Nie dlatego, że wersja jest zła, tylko dlatego, że autorzy wtyczek potrzebują kilku miesięcy na uprzątnięcie ostrzeżeń, a Ty nie masz powodu robić tego za nich.
Na dziś właściwym wyborem pozostaje PHP 8.4, z pełnym wsparciem do końca 2028. Jeśli stoisz na 8.2, pilniejszy od 8.6 jest dla Ciebie zupełnie inny termin: 31 grudnia 2026 ta wersja przestaje dostawać łatki bezpieczeństwa.
Jak sprawdzić swoją stronę już dziś
Nie musisz czekać na premierę, żeby się dowiedzieć, ile ostrzeżeń Cię czeka. Wystarczy włączyć dziennik diagnostyczny na kopii testowej, nigdy na produkcji.
W pliku wp-config.php środowiska testowego:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);Potem przeklikaj stronę główną, kokpit, listę wtyczek, a w sklepie dodatkowo koszyk i kasę. Następnie policz, co się nazbierało:
grep -c "Deprecated" wp-content/debug.log
grep -o "Deprecated:[^ ]* [^,]*" wp-content/debug.log | sort | uniq -c | sort -rn | head -20Drugie polecenie pokaże, które komunikaty powtarzają się najczęściej. Jeśli wśród nich dominuje jedna wtyczka, masz konkretnego kandydata do aktualizacji albo wymiany. Po teście wyłącz dziennik, bo przy włączonym trybie diagnostycznym rośnie w tempie, które potrafi zapełnić dysk.
Pamiętaj przy tym, że dziś badasz zachowanie na swojej obecnej wersji PHP. Pełny obraz dla 8.6 dostaniesz dopiero, gdy hosting udostępni tę wersję na środowisku testowym.
Źródła
- What's New in PHP 8.6, zestawienie zmian, terminów wsparcia i nowych domyślnych ustawień sesji.
- RFC: Deprecations for PHP 8.6, oficjalna lista przyjętych i odrzuconych oznaczeń przestarzałości wraz z wynikami głosowań.
- php86-wordpress-plugin-deprecations, dane z badania stu wtyczek razem z metodą i plikami do samodzielnego sprawdzenia.
Czego nie musisz robić sam
Zmiana wersji PHP jest odwracalna i w typowej stronie firmowej zajmuje kwadrans. Kłopot polega na tym, że ten kwadrans trzeba znaleźć wtedy, gdy nie jest środek sezonu, i że po zmianie ktoś musi przez tydzień zaglądać w logi.
W ramach opieki nad stroną pilnujemy terminów wsparcia wersji PHP, testujemy zgodność wtyczek na środowisku kopii i przeprowadzamy zmianę w oknie, w którym nic ważnego się nie dzieje. Jeśli nie wiesz, na jakiej wersji stoisz ani kiedy przestanie dostawać łatki, napisz do nas.
PHP 8.6 to dobre wydanie, które przyjdzie we właściwym momencie. Ten moment po prostu nie wypada w listopadzie.

O autorze
Mirosław Parcz
Programista i administrator serwerów
Programista i administrator serwerów z 16+ letnim doświadczeniem. Specjalizacja: WordPress/WooCommerce, aplikacje webowe, hosting, wydajność, bezpieczeństwo, integracje AI.
Spodobało się? Podaj dalej.
Powiązane artykuły

Osiem dziur w zależnościach, których nie zainstalowałeś. Audyt npm w praktyce
npm audit pokazuje liczbę, ale decyzja należy do Ciebie. Jak czytać wynik, kiedy podpowiadana naprawa cofa projekt o kilkanaście wydań, jak wymusić bezpieczną wersję zależności przechodniej i dlaczego lockfile potrafi przejść lokalnie, a wywalić wdrożenie.

WordPress 7.1.2 łata krytyczną lukę. Atak bez logowania, podatne wersje od 4.7
CVE-2026-87902 to krytyczna luka w rdzeniu WordPressa, którą można wykorzystać bez konta i która w sprzyjających warunkach daje zdalne wykonanie kodu. Kogo dotyczy, jak w dwie minuty sprawdzić własną stronę i jak zaktualizować bez niespodzianek.

PHP 8.2 traci wsparcie 31 grudnia. Jaka wersja PHP dla WordPressa na 2027
Koniec wsparcia PHP 8.2 wypada 31 grudnia 2026, a PHP 8.1 jest bez łatek od grudnia 2025. Tabela wersji PHP z datami, ryzyka dla strony na starym PHP, rekomendacja której wersji użyć i procedura bezpiecznej zmiany bez wywalenia strony.
Potrzebujesz pomocy?
mDiv może zająć się tym za Ciebie. Bezpiecznie, z backupem i bez przestojów.
Napisz do mnie