如何在php文件中初始化wpdb类?

时间:2012-01-10 14:10:01

标签: wordpress wordpress-plugin

我是wordpress的新手。我想从php文件运行一个sql,这个文件是从一个插件文件调用的。我的插件文件代码是:

if (confirm('Are You Sure You Want to Delete?')){ 
window.location.href = '../wp-content/plugins/delete_data.php?id=<?php echo $db_data['dynamicmenu_id']; ?>';
} else{
}

并且此代码从脚本运行。  我的delete_data.php文件代码如下:

dlt_opt();
function dlt_opt(){
    global $wpdb;
    var_dump($wpdb);
    $dlt_id = $_GET['id'];
    $result = $wpdb->query( $wpdb->prepare( "DELETE FROM ".$wpdb->prefix."dynamicmenu WHERE dynamicmenu_id=".$dlt_id ) );
}

但是在delete_data.php中创建错误,因为它没有找到$ wpdb并且为null。所以wpdb没有初始化,也无法找到wpdb类。我怎么能添加wpdb类? 错误信息是:

Fatal error: Call to a member function query() on a non-object in ...\htdocs\wordpress\wp-content\plugins\delete_data.php on line 7

需要帮助

2 个答案:

答案 0 :(得分:5)

最好使用require_once(ABSPATH。'/ wp-load.php');

答案 1 :(得分:3)

我找到了自己的答案。我需要在该文件中包含wp-load.php。

require_once('../../wp-load.php');

虽然像这样删除不是一个好习惯。