2012-01-10 47 views
2

私はワードプレスで新しいです。私はPHPファイルからSQLを実行したい、このファイルはプラグインファイルから呼び出しています。私のプラグインファイルのコードは:PHPファイル内でwpdbクラスを初期化するにはどうしたらいいですか?

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ファイルのコードは以下のとおりである:それは$のwpdbを見つけ、nullであるされていないため、

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は初期化されておらず、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

、例えば をファイルWP-load.phpを追加: するrequire_once( '../../ WP-load.php')。 –

+0

http://wordpress.stackexchange.com/questions/55625/how-to-initialize-wpdb/257390#257390 –

答えて

5

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

3

を助けが必要です。 wp-load.phpをそのファイルに含める必要があります。

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

このように削除するのは良い方法ではありませんが、

関連する問題