Как заменить названия и значения метаполей в базе данных WordPress?
Всем привет!
Подскажите пожалуйста каким запросом я могу изменить значение всех произвольных полей записи с указанным значением?
А также, нужен запрос, чтобы изменить все названия ключей произвольного поля на указанный, т.е. нужно заменить само название произвольного поля у всех записей.
Приведу пример того, что нужно.
У записей есть метаполе wc_product_type и в этих полях несколько значений: blue, red, green и т.д. Так вот мне нужно изменить во всех записях, само название метаполя на product_type, а также изменить все значения red на none.
Спасибо!
В файле темы вызовите один раз следующий код.
Для этого вставьте код в functions.php темы и обновите страницу сайта. В результате в браузере, вы увидите сколько строк было изменено.
Далее, удалите код из functions.php или если не хотите удалять, потому что может еще пригодиться, просто замените if(1) на if(0):
// Замена названий и значений всех произвольных полей у записей любого типа. Для WordPress if(1){ $meta_key_from = 'wc_product_type'; // заменять ключ с какого $meta_key_to = 'product_type'; // заменять ключ на какой $meta_val_from = 'red'; // заменять значение с какого $meta_val_to = 'none'; // заменять значение на какое // поехали! global $wpdb; $count = 0; // счетчик // заменяем ключи if( $meta_key_from && $meta_key_to ) $count += $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_key = %s WHERE meta_key = %s", $meta_key_to, $meta_key_from ) ); // заменяем значения if( $meta_val_from && $meta_val_to ) $count += $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_value = %s", $meta_val_to, $meta_val_from ) ); die('При замене названий и значений метаполей было обработано строк: '. $count ); }Разве можно в прямых конструкция (не функциях) писать die? Он вроде остановит выполнение дальнейших скриптов.
На это и рассчитано! Чтобы этот код не оставляли, а то заменил и забыл про код, а он вечно работает и ищи потом причину тормозов...