$wpdb未在Function中定义:致命错误:调用非对象上的成员函数Query()

时间:2012-10-14 作者:gzhmr

由于某些原因,$wpdb对象没有在一个特定函数中定义。我在文件中还有四个使用$wpdb的其他函数,除此之外,所有函数都工作正常,只有一个简单的删除函数出现错误:Call to a member function query() on a non-object... 以下是相关功能:

function delete_gallery( $gallery_id ) {
    global $wpdb;

    $sql = "DELETE from galleries WHERE gallery_id = $gallery_id";
    $deleted = $wpdb->query( $sql );

} 
我在插件管理设置页面上有一个链接(删除库),链接到删除库。调用delete函数并返回管理页面的php。该文件的内容包括:

include \'ga-functions.php\';

if (isset($_GET[\'gallery_id\'])) {
    $gallery_id = $_GET[\'gallery_id\'];
    delete_gallery($gallery_id);

    wp_redirect( $_SERVER[\'HTTP_REFERER\'] );
    exit();
}
如果我在初始化后对$wpdb进行var\\u转储,则得到的结果为NULL。任何人都有任何建议,说明是什么原因导致了这样一个特定的函数。

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

好的,新的解决方案。首先,我建议将链接设置为提交按钮,并使名称具有唯一性:

<submit name \'del_gallery\' />
然后在管理员页面的代码中:

include \'ga-functions.php\';
//checks to see if certain button was pressed
if(isset($_REQUEST[\'del_gallery\'] && isset($_GET[\'gallery_id\']) ) {     
    $gallery_id = $_GET[\'gallery_id\'];
    delete_gallery($gallery_id);

    wp_redirect( $_SERVER[\'HTTP_REFERER\'] );
    exit();        
}

结束