【问题标题】:Fix problem of removed code still executing修复已删除代码仍在执行的问题
【发布时间】:2020-01-05 09:42:56
【问题描述】:

我正在编写的 WordPress 插件遇到了最奇怪的问题。我已经在插件上工作了几个星期,才出现这个问题。

在对执行顺序进行故障排除时,我决定注释掉一些代码。但是,当我激活插件时,我收到一个致命错误,表明 Apache 仍在尝试执行代码。

这是来自includes/WPSCAPLogger/WPSCAPLogger.php的相关函数:

function logMessage($logType, $message) {
    try {
        global $tablePrefix;
        global $wpdb;
        $tablePrefix = $wpdb->prefix;
        $tableName = $tablePrefix . 'wpscap_log_category';
        $result = $wpdb->get_row( "SELECT id FROM {$tableName} WHERE log_category LIKE '{$logType}'", OBJECT );
        $logTypeID = $result->id;
        $tableName = $tablePrefix . 'wpscap_log';
        $data = array('log_category_id' => $logTypeID, 'log_entry' => $message);

        $wpdb->insert($tableName, $data);
    } catch (Exception $e) {
        die('Critical error with logger.');
        // TO DO: Handle this better -- or default to PHP error log?
    }
}

我注释了 try 块中的所有内容,即第 4 行到第 17 行。然后我在应用程序中收到以下错误:

[表 'bsd_dev.wp_wpscap_log_category' 不存在] SELECT id FROM wp_wpscap_log_category WHERE log_category LIKE 'Error'

注意:试图获取非对象的属性“id” C:\xampp\htdocs\battlestardigital\wp-content\plugins\stripe-connect-auto-provision\includes\WPSCAPLogger\WPSCAPLogger.php 第 12 行 WordPress 数据库错误:[Table 'bsd_dev.wp_wpscap_log' 不存在] 显示来自wp_wpscap_log 的完整列

WordPress 数据库错误:[Table 'bsd_dev.wp_wpscap_log_category' 不存在] SELECT id FROM wp_wpscap_log_category WHERE log_category LIKE '错误'

注意:试图获取非对象的属性“id” C:\xampp\htdocs\battlestardigital\wp-content\plugins\stripe-connect-auto-provision\includes\WPSCAPLogger\WPSCAPLogger.php 第 12 行 WordPress 数据库错误:[Table 'bsd_dev.wp_wpscap_log' 不存在] 显示来自wp_wpscap_log 的完整列

我觉得这很奇怪,所以我删除了插件,确保将这些行注释掉,重新启动 XAMPP,然后重新安装。同样的错误。然后我重新启动了我的机器,仍然出现同样的错误。

最后,我在 WordPress 内部打开了文件并删除了这些行,同时修复了 die 行。整个函数现在看起来像这样:

function logMessage($logType, $message) {
    try {

    } catch (Exception $e) {            
        error_log($e, 0);
    }
}

我还在代码编辑器中打开了 WordPress,并在整个代码库中搜索“wpscap_log_category”。正如预期的那样,我在 debug.log 和创建表的类中找到了它。

然后,我再次尝试激活插件。该插件实际上确实创建了表,但我仍然收到相同的错误。

进行故障排除似乎是一件很奇怪的事情!有什么建议吗?

编辑我还清除了 Chrome 中的缓存,但这并没有帮助。我在 Edge 中尝试过;同样的结果。

EDIT #2 我一直无法解决这个问题。我在 XAMPP 中安装了一个新的测试站点并上传了插件,它工作得很好。尽管已多次清除缓存,但显然存在缓存问题。奇怪。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    如果您在其他浏览器中打开它会怎样?是否还会出现同样的问题? 我可能是缓存问题。

    【讨论】:

    • 我忘了提到我尝试清除 Chrome 的缓存,但没有效果。我只是尝试通过 Edge 上传它;结果相同。
    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多