Правильный синтаксис для вставки данных в базу из плагина?

14 дек. 2010 г., 18:04:10
Просмотры: 390
Голосов: 0

Я тестирую скрипт для создания вставки в базу данных. Это правильный синтаксис для вставки или мне нужно получить ссылку на глобальный $wpdb и использовать его?

<?php
/*
Название плагина: Тестовая вставка в базу данных
*/

function test_db_insert()
{
INSERT wp_terms(term_id, 'name', slug) VALUES (1, 'test', 'test');
INSERT wp_term_taxonomy(term_taxonomy_id, term_id, taxonomy, parent) VALUES (1, 1, 'category', 0);
INSERT wp_term_relationships(object_id, term_taxonomy_id, term_order) VALUES (1, 1, 0);
}

register_activation_hook(__FILE__, 'test_db_insert');
0
Все ответы на вопрос 2
0

Это похоже на сырой SQL-запрос, который не будет иметь смысла для PHP.

Вы можете выполнить эти запросы как сырые запросы, используя $wpdb->query(), но правильнее будет использовать метод $wpdb->insert().

Смотрите Класс wpdb > Вставка строк в Codex.

14 дек. 2010 г. 18:25:25
3

Вам не нужно использовать SQL для этого. Замените его на:

wp_set_object_terms(1, 'тест', 'название_таксономии');

…где название_таксономии — это название таксономии.

14 дек. 2010 г. 19:15:39
Комментарии

Кажется, это самый простой вариант, но я не уверен, что он сделает именно то, что мне нужно. Могу ли я определить term_id нового термина (предполагая, что он ещё не существует)?

Scott B Scott B
14 дек. 2010 г. 22:19:06

Нет, но — рискуя показаться легкомысленным! — зачем вам это? Ведь важно только то, что ID уникален, так как его никто никогда не увидит?

Rob Miller Rob Miller
15 дек. 2010 г. 12:13:47

Я ориентируюсь на cat_id = 1, чтобы скрыть "Без категории" и все её дочерние элементы, так как использую их для конкретной цели.

Scott B Scott B
26 дек. 2010 г. 19:17:38