2009-08-20 20 views
23

wiem o error_reporting(0); i ini_set('display_errors', false);, ale jest zawiadomienie występując w WordPress:Jak zatrzymać wyświetlanie komunikatów PHP w Wordpress?

Notice: Array to string conversion in /var/www/vhosts/treethink.net/subdomains/parkridge/httpdocs/wp-includes/formatting.php on line 359

IT tylko pojawia się w wordpress, a nie w innych stronach serwisu.

Sprawdziłem phpinfo() i wszystko zostało ustawione, aby błędy nie były wyświetlane. Dlaczego ten wciąż się pojawia?

Oto wiersz, który generuje błąd:

function wp_check_invalid_utf8($string, $strip = false) { 
    $string = (string) $string; 

I nie zmienić niektóre rzeczy w wordpress, aby zmienić sposób galeria pracował. Ale nie ta funkcja i nie sądzę, abym zmieniła jakiekolwiek wywołania tej funkcji. Oprócz pojawienia się komunikatu, wszystko wydaje się działać doskonale, po prostu muszę ukryć ten błąd.

+0

Czy na pewno wp nie zmienia wartości error_reporting i display_errors gdzieś? – jmucchiello

+0

to było to, o czym myślałem, ale błędu nie było przed –

+0

oh, ustawiłem wartości, gdy pracowałem na stronie, więc mogłem zobaczyć, czy były łatwiejsze błędy. –

Odpowiedz

52

trzeba zmieniać swoich:

wp-config.php 

plik i modyfikować tutaj następujące:

error_reporting(0); 
@ini_set('display_errors', 0); 

inaczej Wordpress nadpisuje wpisach określonych przez php.ini

+1

Aby to działało, musiałem umieścić te linie u dołu wp-config po wywołaniu pliku konfiguracyjnego wp-settings.php. – Colin

+0

Ważne: przy obecnej wersji WordPress to już nie działa. WordPress nadpisze opcję error_reporting po włączeniu WP_DEBUG. To rozwiązanie działa do dziś (wrz 2015) http://stackoverflow.com/a/27997023/313501 – Philipp

+0

To rozwiązanie wyłącza wszystkie błędy, nie tylko powiadomienia. Rozwiązanie Eric Henry jest lepsze, pozwala zachować wszystkie błędy, tłumiąc jedynie powiadomienia i ostrzeżenia. – jstice4all

9

W wp-config. php dodaj tę linię:

define('WP_DEBUG_DISPLAY', false); 

Pozwoli to włączyć lub wyłączyć wyświetlanie powiadomień i ostrzeżeń na stronie. Jest pełniejszy opis tej opcji i niektóre związane z nimi opcje tutaj:

http://codex.wordpress.org/Debugging_in_WordPress

+0

ten działał dla mnie - potrzebowałem umieścić go na górze wp-config.php. Dzięki (^ _ ^) * – adamS

1

jeśli chcesz ukryć tylko błędy, które pochodzą z tej funkcji można korzystać

@function wp_check_invalid_utf8($string, $strip = false) 
{ 

} 
7

sty 2015 z najnowszy Wordpress, żaden z powyższych nie działa dla mnie.

Tworzenie pliku php w folderze MU-plugins WordPress działało, jak:

<?php 
error_reporting(E_ALL & ~(E_NOTICE | E_USER_NOTICE | E_STRICT | 
E_DEPRECATED | E_USER_DEPRECATED | E_WARNING | E_CORE_WARNING | 
E_USER_WARNING | E_COMPILE_WARNING | E_PARSE)); 

Wystarczy nazwać cokolwiek chcesz ...

dostałem odpowiedź, stąd:

https://wycks.wordpress.com/2013/12/05/how-to-remove-error-notices-using-wordpresss-wp_debug/

+0

To jest w rzeczywistości najlepsze rozwiązanie, ponieważ pozwala używać WP_DEBUG i WP_DEBUG_DISPLAY, ale ukrywa tylko uwagi PHP. Inne rozwiązania albo nie działają, albo wyłączają całe wyjście do debugowania. – Philipp

+0

Drobna zmiana: dla mnie potrzebuję tylko tej linii: error_reporting (E_ALL i ~ (E_NOTICE)); – ssaltman

0
/** 
* For developers: WordPress debugging mode. 
* 
* Change this to true to enable the display of notices during development. 
* It is strongly recommended that plugin and theme developers use WP_DEBUG 
* in their development environments. 
*/ 
define('WP_DEBUG', false); 

// Enable Debug logging to the /wp-content/debug.log file 
define('WP_DEBUG_LOG', false); 

// Disable display of errors and warnings 
define('WP_DEBUG_DISPLAY', false); 
@ini_set('display_errors', 0); 

Co używam i działa z najnowszą wersją WordPress.

1

Zazwyczaj nie ma się o co martwić (choć twórca wtyczek/motywów powinien o nich wiedzieć, aby mogli je poprawić w przyszłej wersji). Ostrzeżenia i uwagi PHP to nic, o co można się martwić w witrynie produkcyjnej przez większość czasu. Niektóre z nich można nawet wygenerować, ponieważ programista musi zachować zgodność ze starszymi wersjami WordPressa oraz starszymi wersjami PHP.

define('WP_DEBUG', false); 

z tym

ini_set('log_errors','On'); 
ini_set('display_errors','Off'); 
ini_set('error_reporting', E_ALL); 
define('WP_DEBUG', false); 
define('WP_DEBUG_LOG', true); 
define('WP_DEBUG_DISPLAY', false); 

Jeśli po prostu zestaw WP_DEBUG do fałszywego w pliku wp-config.php powinno być w porządku. Nie mają one żadnego wpływu na twoją stronę.

Problem polega jednak na tym, że niektóre powyższe czynności nie działają. To zdarza się najczęściej na tanich współdzielonych hostach, które wymuszają wyświetlanie ostrzeżeń i komunikatów PHP. W takim przypadku można zastąpić tę linię z pliku wp-config.php:

Powiązane problemy