由于某些原因,$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。任何人都有任何建议,说明是什么原因导致了这样一个特定的函数。
最合适的回答,由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();
}