2009-08-20 8 views
23

Je sais error_reporting(0); et ini_set('display_errors', false);, mais il y a un avis apparaissant dans wordpress:Comment puis-je empêcher les avis PHP d'apparaître dans wordpress?

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

il seulement apparaît dans wordpress, pas dans toutes les autres pages du site.

J'ai vérifié phpinfo(), et tout est réglé pour que les erreurs ne s'affichent pas. Pourquoi celui-ci apparaît-il encore?

Voici la ligne qui génère l'erreur:

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

Je ne changement quelque chose dans wordpress, de changer la façon dont la galerie a fonctionné. Mais pas cette fonction, et je ne pense pas avoir changé les appels à cette fonction non plus. Mis à part l'avis apparaissant, tout semble fonctionner parfaitement bien, j'ai juste besoin d'obtenir cette erreur pour me cacher.

+0

Etes-vous sûr que wp ne modifie pas les valeurs de error_reporting et display_errors quelque part? – jmucchiello

+0

c'est ce que je pensais, mais l'erreur n'était pas là avant –

+0

oh, j'ai mis les valeurs quand je travaillais sur le site, donc je pouvais voir s'il y avait des erreurs plus facilement. –

Répondre

52

Vous devez modifier votre:

wp-config.php 
fichier

et modifier les éléments suivants ici:

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

autrement Wordpress écrase les PHP.INI fixées par ALERTES

+1

Pour que cela fonctionne pour moi, j'ai dû placer ces lignes en bas de wp-config après que le fichier de configuration ait appelé wp-settings.php. – Colin

+0

Important: Avec la version actuelle de WordPress cela ne fonctionne plus. WordPress remplacera l'option error_reporting lorsque vous activez WP_DEBUG. Cette solution fonctionne aujourd'hui (sept 2015) http://stackoverflow.com/a/27997023/313501 – Philipp

+0

Cette solution désactive toutes les erreurs non seulement les avis. La solution d'Eric Henry est meilleure, elle permet de garder toutes les erreurs, en supprimant seulement les notifications et les avertissements. – jstice4all

9

Dans wp-config. php ajouter cette ligne:

define('WP_DEBUG_DISPLAY', false); 

Cela activera ou désactivera l'affichage des notifications et des avertissements sur la page. Il y a une description plus complète de cette option, et certaines options connexes, ici:

http://codex.wordpress.org/Debugging_in_WordPress

+0

celui-ci a fonctionné pour moi - j'avais besoin de le mettre en haut de la wp-config.php cependant. Merci (^ _ ^) * – adamS

1

si vous voulez cacher seulement des erreurs qui vient de cette fonction vous pouvez utiliser

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

} 
7

janvier 2015 avec dernier Wordpress, aucun de ce qui précède ne fonctionne pour moi.

Création d'un fichier php dans le dossier mu-plugins de Wordpress a travaillé, comme:

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

nom juste ce que vous voulez ...

je suis la réponse d'ici:

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

+0

C'est en fait la meilleure solution ici car elle vous permet d'utiliser WP_DEBUG et WP_DEBUG_DISPLAY mais ne cache que les notifications PHP. Les autres solutions ne fonctionnent pas ou désactivent complètement la sortie de débogage. – Philipp

+0

Changement mineur: pour moi, j'ai seulement besoin de cette ligne: 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); 

Ce que j'utilise et cela fonctionne avec la dernière version de WordPress.

1

La plupart du temps, il n'y a pas de raison de s'inquiéter (même si le développeur de plugins/thèmes doit les connaître pour pouvoir les corriger dans une future version). Les avertissements et les avis de PHP ne sont pas à s'inquiéter sur un site de production la plupart du temps. Certains d'entre eux peuvent même être générés parce que le développeur doit conserver la compatibilité avec les anciennes versions de WordPress ainsi que les anciennes versions de PHP.

define('WP_DEBUG', false); 

avec ce

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

Si vous simplement ensemble WP_DEBUG false dans votre fichier wp-config.php vous devriez être bien. Ceux-ci n'affectent en rien votre site.

Cependant, le problème est que parfois, ce qui précède ne fonctionne pas. Cela peut arriver la plupart du temps sur des hôtes partagés bon marché qui forcent à afficher des avertissements et des avis PHP. Dans ce cas, vous pouvez remplacer cette ligne de votre fichier wp-config.php:

Questions connexes