解决了已删除代码仍在执行的问题

时间:2019-09-02 10:37:14

标签: php wordpress

我正在编写的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像“错误”

     

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

中的完整列      

WordPress数据库错误:[表'bsd_dev.wp_wpscap_log_category'   不存在]在wp_wpscap_log_category中选择ID   log_category像“错误”

     

注意:试图获取非对象的属性“ id”   C:\ xampp \ htdocs \ battlestardigital \ wp-content \ plugins \ stripe-connect-auto-provision \ includes \ WPSCAPLogger \ WPSCAPLogger.php   第12行WordPress数据库错误:[表'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中安装了一个新的测试站点,并上传了该插件,在该插件中工作正常。尽管已经多次清除了缓存,但是显然存在缓存问题。奇怪的。

1 个答案:

答案 0 :(得分:0)

如果在另一个浏览器中打开它怎么办?还会出现相同的问题吗? 我可能是一个缓存问题。