Intereting Posts
динамически создавать функции обратного вызова внутри цикла for WordPress Multisite с тысячами блога Изменение макета содержимого на основе иерархии меню Как удалить или изменить значок «W» в «Мои сайты»? Как иметь более одного идентификатора, включенных в команду exclude? get_permalink () дает только ссылку на страницу. как это решить.? Добавить знак доллара и запятые к номеру? Как ограничить параметры статуса для массового / быстрого редактирования только опубликованными и черновыми? Распечатайте идентификатор пользователя WordPress – два сайта с одинаковым кодом, но с другим выходом Время ожидания wp_set_object_terms? Сортировка «get_pages» по заказу меню, не упорядочивая Как отображать категории в пользовательских типах сообщений и связывать их Есть ли способ инициировать автоматический импорт резервной копии WP для создания нового многосайтового сайта WP? тот же wordpress, 2 домена Разрешить анонимным пользователям отправлять сообщения на мой сайт для модерации

запросы внутри класса

Я создаю плагин, и я совершенно новый для 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) ); } } 

Я хотел бы иметь возможность использовать внутри класса классной базы Word класса 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 в вашем классе является то, что вы не сможете использовать его в статических методах, если вы когда-либо создавали некоторые. Два альтернативных подхода:

 class MyClass { public function query1() { global $wpdb; $wpdb->query('SQL'); } public function query2() { $GLOBALS['wpdb']->query('SQL'); } }