如何阻止 PHP 通知出现在 wordpress 中?

How can I stop PHP notices from appearing in wordpress?

提问人:Carson Myers 提问时间:8/21/2009 更新时间:11/20/2016 访问量:44137

问:

我知道 和 ,但是 wordpress 中出现了一个通知:error_reporting(0);ini_set('display_errors', false);

注意:第 359 行的 /var/www/vhosts/treethink.net/subdomains/parkridge/httpdocs/wp-includes/formatting.php 中的数组到字符串的转换

出现在WordPress中,不出现在网站的任何其他页面中。

我检查了,一切都已设置,因此不会显示错误。为什么这个还会出现?phpinfo()

下面是生成错误的行:

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

我确实在wordpress中更改了一些东西,以改变画廊的工作方式。但不是这个函数,我认为我也没有更改对这个函数的任何调用。除了出现通知之外,一切似乎都运行良好,我只需要隐藏此错误即可。

php wordpress 错误报告

评论

0赞 jmucchiello 8/21/2009
你确定wp不会在某处改变error_reporting和display_errors的值吗?
0赞 Carson Myers 8/21/2009
这就是我的想法,但错误以前不存在
0赞 Carson Myers 8/21/2009
哦,我在网站上工作时设置了这些值,这样我就可以更容易地查看是否有错误。

答:

54赞 Jakub 8/21/2009 #1

您需要编辑您的:

wp-config.php

文件并在此处修改以下内容:

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

否则 Wordpress 会覆盖 PHP 设置的 ALERTS。INI

评论

6赞 Colin 9/25/2014
为了让这对我有用,我不得不在配置文件调用 wp-settings.php 后将这些行放在 wp-config 的底部。
0赞 Philipp 9/5/2015
重要提示:在当前的 WordPress 版本中,这不再起作用。当您启用WP_DEBUG时,WordPress 将覆盖error_reporting选项。该解决方案今天(2015 年 9 月)stackoverflow.com/a/27997023/313501
0赞 jstice4all 10/15/2015
此解决方案不仅会关闭所有错误,还会关闭通知。埃里克·亨利(Eric Henry)的解决方案更好,它允许保持所有错误,只压制通知和警告。
10赞 Jason 9/21/2013 #2

在 wp-config.php 中添加以下行:

define('WP_DEBUG_DISPLAY', false);

这将启用或禁用对页面的通知和警告的显示。此处对此选项和一些相关选项进行了更全面的描述:

http://codex.wordpress.org/Debugging_in_WordPress

评论

0赞 adamS 4/16/2014
这个对我有用 - 不过我需要把它放在wp-config.php的顶部。谢谢 (^_^) *
1赞 Ankit Agrawal 9/21/2013 #3

如果您只想隐藏来自此函数的错误,您可以使用

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

}
15赞 Eric Henry 1/17/2015 #4

2015 年 1 月使用最新的 Wordpress,以上都不适合我。

在 Wordpress 的 mu-plugins 文件夹中创建一个 php 文件可以工作,例如:

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

随心所欲地命名它......

我从这里得到了答案:

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

评论

0赞 Philipp 9/5/2015
这实际上是这里最好的解决方案,因为它允许您使用 WP_DEBUG 和 WP_DEBUG_DISPLAY,但只隐藏 PHP 通知。其他解决方案要么不起作用,要么完全禁用所有调试输出
0赞 ssaltman 4/28/2016
小改动:对我来说,我只需要这一行:error_reporting(E_ALL & ~( E_NOTICE));
0赞 Fanky 10/2/2019
创建了此文件,在模板中出错,页面显示默认的 Broken Web 消息,就好像 WP_DEBUG 和 WP_DEBUG_DISPLAY 未设置为 true。但它们是..:/ 当我删除脚本时,通知和错误再次显示
0赞 marcelo2605 8/26/2022
它在 2022 年仍在工作!
0赞 adamj 4/2/2015 #5
/**
 * 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);

我使用什么,它适用于最新的 WordPress 版本。

2赞 OpenWebWar 11/20/2016 #6

大多数情况下,这些都没什么可担心的(尽管插件/主题开发人员应该知道这些,以便他们可以在将来的版本中修复它们)。大多数时候,PHP警告和通知在生产现场都没什么可担心的。 其中一些甚至可以生成,因为开发人员必须保持与旧版本的 WordPress 以及旧版本的 PHP 版本的兼容性。

define('WP_DEBUG', false);

有了这个

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

如果您只是在wp-config.php文件中将WP_DEBUG设置为 false,您应该没问题。这些不会以任何方式影响您的网站。

但是,问题是有时上述方法不起作用。 大多数情况下,这种情况可能会发生在强制显示PHP警告和通知的廉价共享主机上。 在这种情况下,您可以替换 wp-config.php 文件中的以下行: