在非对象上调用成员函数Insert()时出现致命错误

时间:2013-11-21 作者:Navneil

我正在上运行自定义查询functions.php:

function subscribers(){
    if(isset($_POST["email"])){
        $email = $_POST["email"];
        echo $wpdb->insert($wpdb->easymail_subscribers, array(\'email\' => $email));
    }
}
add_action(\'wp_ajax_subscribers\', \'subscribers\');
add_action(\'wp_ajax_nopriv_subscribers\', \'subscribers\');
这是由AJAX请求调用的。我收到以下错误消息:

致命错误:对G:\\xampp\\htdocs\\Projects\\newsite\\wp content\\themes\\generic\\functions中的非对象调用成员函数insert()。php在线

试图解决这个问题,但不可能。

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

您需要确保您使用的是全局$wpdb

function subscribers(){
    global $wpdb;
    if(isset($_POST["email"])){
        $email = $_POST["email"];
        echo $wpdb->insert($wpdb->easymail_subscribers, array(\'email\' => $email));
    }
}

结束

相关推荐

Add_action和WP_Query如何

我是WP新手,PHP新手和OOP新手。1) WP如何工作add_action 是否接收另一个函数作为其参数?我知道这本身是不可能的。我故意破坏了一些代码,发现实际上有一个本机php函数call_user_fun_array, 但他们是如何使自己的函数可以有一个函数作为其参数的呢?2) 我正在做一些插件教程并使用WP\\u Query,我只是将一个参数直接传递给WP\\u Query,好像它是一个方法而不是一个类。I did the following: $loop = new WP_Q