Как сделать запрос в базу данных к termmeta для изменения нужной строки?
Необходимо делать запрос в базу данных после определенной проверки страницы (произвольная таксономия), если условие выполняется то должен происходить запрос в базу данных, который меняет значение
Делаю так:
$id = $term->term_id;
$key = "dts";
$value = "0";
global $wpdb;
$wpdb->query( $wpdb->prepare(
"
INSERT INTO $wpdb->termmeta
( term_id, meta_key, meta_value )
VALUES ( %d, %s, %s )
",
$id,
$key,
$value
) );
но вместо замены значения на 0, создается еще одна строка в базе со значением 0, а старая остается
Ответы (2 шт):
Автор решения: Федор Васильев
→ Ссылка
Нашёл правильное решение
global $wpdb;
$wpdb->update(
$wpdb->prefix . 'termmeta', // указываем таблицу
array('meta_value' => '0'), // поменяем имя
array( // где
'term_id' => $term->term_id,
'meta_key' => 'dts'
),
array( '%s' ),
array( // формат для «где»
'%d',
'%s'
)
);
источник https://misha.agency/wordpress/interfacing-with-the-database.html#update
Автор решения: Федор Васильев
→ Ссылка
Кстати нашёл ещё один просто способ без запросов в базу данных
update_term_meta(
$term->term_id, // id термина таксономии
'dts', // название поля
'0' // новое значение поля
);
Делает всё тоже самое, что и код выше