为什么WP_DEBUG只在调用wp_DEBUG_MODE()之后才起作用?

时间:2014-02-11 作者:Nelu

调试设置为打开时,

define(\'WP_DEBUG\', true);
我的WordPress实例没有显示任何调试信息。

经过一番搜寻,我想在我打电话之后wp_debug_mode() 调试信息显示正确。

有人能告诉我为什么打电话吗wp_debug_mode() 是必要的,因为调试documentation page 甚至没有提到这个功能?

我的环境中有什么东西导致了这种情况吗?

2 个回复
最合适的回答,由SO网友:kaiser 整理而成

看看吧at its source:

function wp_debug_mode() {
    if ( WP_DEBUG ) {
        error_reporting( E_ALL );

        if ( WP_DEBUG_DISPLAY )
            ini_set( \'display_errors\', 1 );
        elseif ( null !== WP_DEBUG_DISPLAY )
            ini_set( \'display_errors\', 0 );

        if ( WP_DEBUG_LOG ) {
            ini_set( \'log_errors\', 1 );
            ini_set( \'error_log\', WP_CONTENT_DIR . \'/debug.log\' );
        }
    } else {
        error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR );
    }
    if ( defined( \'XMLRPC_REQUEST\' ) )
        ini_set( \'display_errors\', 0 );
}
你不能自己调用这个函数。它在~/wp-settings.php 在运行时很久之前muplugins_loaded, plugins_loadedafter_setup_theme 可供您使用。

唯一需要确保的是添加

defined( \'WP_DEBUG\' ) or defined( \'WP_DEBUG\', TRUE );
给你wp-config.php 文件

SO网友:Otto

您不需要自己调用wp\\u debug\\u mode(),它是在wp设置过程的早期调用的。php。

也许您定义WP\\u DEBUG常量太晚了?它应该在wp配置中定义。php文件,而不是其他任何地方。

结束

相关推荐

有条件地定义WP_DEBUG/仅用于管理员/记录错误(是否为所有链接附加查询参数?)

我正在服务器上开发一个站点,客户端也可以访问该站点,我想做的是显示WP_DEBUG 仅限管理员使用。引用Yoast\'s article 围绕这一点:if ( isset($_GET[\'debug\']) && $_GET[\'debug\'] == \'true\') define(\'WP_DEBUG\', true); 将显示WP_DEBUG 仅适用于具有?debug=true 依附于他们,就像http://domain.com/?debug=true我在