调试:如何确定哪个插件在plugin.php中抛出错误

时间:2016-07-21 作者:jungalist

我的错误日志显示了许多实例:PHP警告:为\\wp admin\\includes\\plugin中的foreach()提供的参数无效。php在线1415

我如何确定是哪个插件(以及该插件的哪一页/哪一行)导致了这种情况?是否有适当的机制,或者我必须反复尝试?

2 个回复
SO网友:jgraup

在您的wp-config.php 确保包括:;

define( \'WP_DEBUG\', true );
define( \'WP_DEBUG_DISPLAY\', true );
有时,您的环境在输出堆栈跟踪方面会做得更好。

如果这不起作用,您可以在WP core中执行该行并添加;

$backtrace = debug_backtrace();

print(\'<pre>\');
print_r ( $backtrace );
例如,这会给你提供更多的信息;

/*
Array
(
    [0] => Array
        (
            [file] => /site/wp-content/plugins/debug-bar-console/class-debug-bar-console.php
            [line] => 84
            [function] => eval
        )

    [1] => Array
        (
            [function] => ajax
            [class] => Debug_Bar_Console
            [object] => Debug_Bar_Console Object
                (
                    [_title] => Console
                    [_visible] => 1
                )

            [type] => ->
            [args] => Array
                (
                    [0] => 
                )

        )

    [2] => Array
        (
            [file] => /site/wp-includes/plugin.php
            [line] => 525
            [function] => call_user_func_array
            [args] => Array
                (
                    [0] => Array
                        (
                            [0] => Debug_Bar_Console Object
                                (
                                    [_title] => Console
                                    [_visible] => 1
                                )

                            [1] => ajax
                        )

                    [1] => Array
                        (
                            [0] => 
                        )

                )

        )

    [3] => Array
        (
            [file] => /site/wp-admin/admin-ajax.php
            [line] => 89
            [function] => do_action
            [args] => Array
                (
                    [0] => wp_ajax_debug_bar_console
                )

        )

)
*/

SO网友:majick

由于只是调试,您可以在插件中临时编辑该函数。引发错误并放入该函数第一行的php:

echo "<!--"; var_dump(func_get_args()); echo "-->";
然后查看页面源代码,它应该让您了解更多信息,调试信息将输出到与之相关的错误消息上方。当然,完成后请删除该行。

相关推荐

500 Internal Errors

我正在将当前的Eduma主题更新为最新版本(3.0.9.1),目前的版本是3.0.7。我正在运行WordPress 4.7.5。但是,在运行更新时,我得到Update Failed: Internal Server Error 安装过程中的消息。所以我启动了这个过程,它运行了一分钟,然后它就停止了工作,我陷入了维护模式。所以我必须手动删除.maintenance 来自我的服务器的文件。我截图了我在错误中看到的内容。我在WordPress网站上运行了调试模式,这就是我所拥有的[31-May-2017 15: