Jeśli WP_DEBUG nie jest ustawiony, jak rozumiem, nigdy nie powinieneś widzieć ostrzeżeń. Ale w niektórych witrynach na niektórych serwerach wciąż widzę kilka. Nie wszystkie ostrzeżenia, które byłyby wyświetlane, gdyby ustawiono WP_DEBUG, ale kilka wybranych.
Próbowałem zmienić poziom błędu w php.ini, ale wydaje się, że nie ma to wpływu na to, czy pojawiają się ostrzeżenia, czy też nie, ale pojawiają się w różnych ilościach na różnych serwerach (tj. Brak ostrzeżeń podczas programowania, jedno ostrzeżenie o przemieszczaniu i jeszcze kilka ostrzeżeń dotyczących produkcji).
Odpowiedzi:
WP_DEBUG nie ma wpływu na wyjście błędu PHP. Oprócz ustawienia raportowania błędów ustaw display_errors = 0 w pliku php.ini. Jest domyślnie włączony do programowania. Ale będziesz tego chciał na serwerach produkcyjnych.
źródło
Zastąpić
z tym:
źródło
Możliwe jest również, że ta linia jest już ustawiona na false. W takim przypadku zobaczysz następujący kod:
W obu przypadkach należy zastąpić ten wiersz następującym kodem:
Nie zapomnij zapisać zmian i przesłać plik wp-config.php z powrotem na serwer.
źródło
Spróbuj wyłączyć / ukryć wszystkie ostrzeżenia / powiadomienia o błędach w swoim
wp-config.php
(na górze). W każdym razie: Błędy nie są niczym złym. Dają ci szansę na poprawienie twojego kodu.źródło
W środowiskach WordPress zwykle nie ma powodu, aby z tego korzystać,
ini_set
ponieważ właśnie to osiągają zdefiniowane stałe dostarczone przez WordPress Core. Sposób działania PHP polega na tym, że niektóre ustawienia można zastąpić w systemie CMS (WordPress), w poszczególnych skryptach, a nawet dla poszczególnych użytkowników lub katalogów (ku wielkiej frustracji hostów i agencji).Aby wyłączyć wyświetlanie błędów na stronie w WordPress, jedynym ustawieniem, którego naprawdę potrzebujesz, jest:
... ponieważ kiedy
WP_DEBUG
jest wyłączone, opcje podrzędne są wtedy nieaktywne:Należy pamiętać, że myląca
WP_DEBUG_LOG
opcja odnosi się tylko do tworzeniadebug.log
w kataloguwp-content
i nie wpływa na inne ustawienia rejestrowania itp.Ponownie, ustawienia w WordPress mogą zastąpić domyślne ustawienia PHP, więc ustawienia PHP nie mają tak dużego znaczenia, jak prawidłowe ustawienia
wp-config.php
pliku, które ładują się przed innymi komponentami WP.To powiedziawszy, dobrym pomysłem jest wdrożenie domyślnych ustawień, takich jak poniżej w produkcji:
Aby uzyskać pełny przykład, zapoznaj się z naszym plikiem php.ini SlickStack zoptymalizowanym dla Nginx i PHP-FPM.
W jednym przypadku, po godzinach badań, zdaliśmy sobie sprawę, że wtyczka (lub motyw) zastępuje różne ustawienia obsługi błędów wcześniej ustawione w
php.ini
iwp-config.php
. Jedynym sposobem, aby temu zapobiec, jest usunięcie wtyczki lub motywu WordPress, który próbuje „zhakować” ustawienia PHP lub nakazać im usunięcie, ponieważ jest to bardzo zła praktyka, aby rozszerzenia zastępowały opcje debugowania twojego CMS.W SlickStack stworzyliśmy skrypt Bash, który „ zaznacza ” dowolne wiersze
ini_set
ierror_reporting
pliki PHP w katalogach/themes/
i/plugins/
, zaznaczając takie przypadki za pomocą wtyczki MU (skrypt PHP), która wyświetla listę takich „włamań” na pulpicie administracyjnym WP.źródło