显示admin-ajax.php中的PHP错误 时间:2018-03-26 作者:owenmelbz 我们已经设置了一些自定义端点,可以执行各种操作,我们可以通过/wp/wp-admin/admin-ajax.php?action=some_action然而,每当我们在开发过程中出现错误,如语法、逻辑、致命错误等,我们只会得到“500内部服务器错误”当站点上的其他页面出现错误时,它会向我们提供PHP错误。然后,我们必须打开PHP日志文件来查看错误。wordpress中是否有禁止在这些URL上显示错误的内容?如果是这样,我们如何防止这种情况发生,以便在浏览器上呈现错误? 3 个回复 SO网友:Rahil Wazir WordPress默认情况下隐藏ajax请求调用的错误。这可以从源文件中确认wp-includes/load.php#L352, 此处:if ( defined( \'XMLRPC_REQUEST\' ) || defined( \'REST_REQUEST\' ) || ( defined( \'WP_INSTALLING\' ) && WP_INSTALLING ) || wp_doing_ajax() ) { @ini_set( \'display_errors\', 0 ); } 查看函数wp_doing_ajax() 在条件语句中使用,因此display_errors 正在设置。为了解决这个问题,您需要在ajax函数调用的顶部手动打开错误报告,如@Friss. SO网友:Friss 您可以尝试在教程脚本文件的最顶端添加这两行error_reporting(E_ALL); ini_set("display_errors", 1); 它告诉php报告所有类型的错误,并覆盖其默认设置以显示它们。 SO网友:codiiv 您可以尝试WP\\u Ajax\\u响应$response = array( \'what\'=>\'stuff\', \'action\'=>\'delete_something\', \'id\'=>new WP_Error(\'oops\',\'I had an accident.\'), \'data\'=>\'Whoops, there was a problem!\' ); $xmlResponse = new WP_Ajax_Response($response); $xmlResponse->send(); 阅读更多信息https://codex.wordpress.org/Function_Reference/WP_Ajax_Response 结束 文章导航