2009-08-20 6 views
23

so di error_reporting(0);, e ini_set('display_errors', false);, ma c'è un avviso che appare in WordPress:Come posso evitare che le notifiche PHP vengano visualizzate in wordpress?

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

IT solo appare in wordpress, non in altre pagine del sito.

Ho controllato phpinfo() e tutto è impostato in modo che gli errori non vengano visualizzati. Perché questo si presenta ancora?

Qui è la linea che genera l'errore:

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

ho fatto cambiamento qualche cosa in wordpress, per modificare la modalità galleria ha funzionato. Ma non questa funzione, e non penso di aver cambiato nessuna chiamata a questa funzione. A parte l'avviso che appare, tutto sembra funzionare perfettamente bene, ho solo bisogno di ottenere questo errore da nascondere.

+0

Sei sicuro che wp non cambi i valori di error_reporting e display_errors da qualche parte? – jmucchiello

+0

è quello che stavo pensando, ma l'errore non era lì prima di –

+0

oh, ho impostato i valori quando stavo lavorando sul sito, così ho potuto vedere se c'erano errori più facilmente. –

risposta

52

è necessario modificare la vostra:

wp-config.php 

di file e modificare le seguenti qui:

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

altrimenti Wordpress sovrascrive gli allarmi stabiliti dalla PHP.INI

+1

Per far funzionare questo lavoro per me ho dovuto posizionare queste righe nella parte inferiore di wp-config dopo che il file di configurazione aveva chiamato wp-settings.php. – Colin

+0

Importante: con la versione corrente di WordPress questo NON funziona più. WordPress sovrascriverà l'opzione error_reporting quando abiliti WP_DEBUG. Questa soluzione funziona oggi (set 2015) http://stackoverflow.com/a/27997023/313501 – Philipp

+0

Questa soluzione disattiva tutti gli errori e non solo le notifiche. La soluzione di Eric Henry è migliore, consente di mantenere tutti gli errori, sopprimendo solo le notifiche e gli avvertimenti. – jstice4all

9

in wp-config. php aggiungi questa riga:

define('WP_DEBUG_DISPLAY', false); 

Ciò abiliterà o disabiliterà la visualizzazione di avvisi e avvisi sulla pagina. C'è una descrizione più completa di questa opzione, e alcune opzioni correlate, qui:

http://codex.wordpress.org/Debugging_in_WordPress

+0

questo ha funzionato per me - avevo comunque bisogno di metterlo in cima al wp-config.php. Grazie (^ _ ^) * – adamS

1

se si desidera nascondere solo gli errori che proviene da questa funzione è possibile utilizzare

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

} 
7

gennaio 2015 con ultimo Wordpress, nessuno dei precedenti funziona per me.

Creazione di un file php nella cartella mu-plugin di Wordpress ha lavorato, come:

<?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)); 

Basta nominarlo tutto quello che vuoi ...

ho avuto la risposta da qui:

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

+0

Questa è in realtà la soluzione migliore qui in quanto consente di utilizzare WP_DEBUG e WP_DEBUG_DISPLAY ma nasconde solo le note di PHP. Le altre soluzioni non funzionano o disabilitano completamente tutte le uscite di debug – Philipp

+0

Modifica minima: per me ho solo bisogno di questa riga: error_reporting (E_ALL & ~ (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); 

Quello che uso e funziona con l'ultima versione di WordPress.

1

La maggior parte delle volte questi non sono nulla di cui preoccuparsi (anche se lo sviluppatore di plugin/tema dovrebbe conoscerli in modo che possano risolverli in una versione futura). Gli avvisi e le avvertenze PHP non sono nulla di cui preoccuparsi in un sito di produzione per la maggior parte del tempo. Alcuni di questi possono anche essere generati perché lo sviluppatore deve mantenere la compatibilità con le versioni precedenti di WordPress e con le versioni precedenti di PHP.

define('WP_DEBUG', false); 

con questo

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); 

Se semplicemente set WP_DEBUG false nel file wp-config.php si dovrebbe andare bene. Questi non influenzano il tuo sito in alcun modo.

Tuttavia, il problema è che alcune volte quanto sopra non funziona. Questo può accadere la maggior parte delle volte su host condivisi poco costosi che forzano la visualizzazione di avvertimenti e avvisi PHP. In questo caso, puoi sostituire questa linea dal tuo file wp-config.php: