私はプラグインを作成していますし、私はwordpressにはかなり新しい私はデータベースクエリを実行する必要がありますいくつかのメソッドを持っているクラスを持っています。クラスは次のようになります
class MyClass{
private $wpdb;
function __construct(){
global $wpdb;
}
function query(){
$wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->wp_competitors
( id, field_key, field_value ) VALUES ( %d, %s, %s )",1,
$field_key, $field_value) );
}
}
私のクラスのwordpressネイティブデータベースクラスの内部で使用できるようにしたいのですが、どうすればよいですか?
class MyClass{
function __construct(){
global $wpdb;
$this->db = $wpdb;
}
function query(){
return $this->db->query(
$this->db->prepare("INSERT INTO {$this->db->wp_competitors} (id, ield_key, field_value) VALUES ( %d, %s, %s )",
1, $field_key, $field_value)
);
}
}
自分のクラスでカスタムの$db
プロパティを使用することの不利な点は、これを作成したとしても、静的メソッドでは使用できないことです。 2つの代替アプローチ
class MyClass {
public function query1() {
global $wpdb;
$wpdb->query('SQL');
}
public function query2() {
$GLOBALS['wpdb']->query('SQL');
}
}