Этот ответ отвечает на название вашего вопроса, но не на все остальные вопросы (см. , как задать ) .
Вы можете использоватьследующий запрос SQL (создание резервной копии базы данных ранее) :
UPDATE wp_terms as a
JOIN wp_term_taxonomy b ON a.term_id = b.term_id
SET a.name = 'new_name',
a.slug = 'new_slug'
WHERE b.taxonomy = 'product_cat'
AND a.name = 'old_name'
Где вам нужно будет заменить:
new_name
на ваш новый продуктназвание категории new_slug
для вашей новой категории продуктов слаг (строчные буквы и "-
" заменяют пробелы) old_name
для вашей старой категории продуктовимя (тот, который вы хотите заменить)
Вы также можете использовать следующую функцию с тем же SQL-запросом:
function rename_product_category( $old_name, $new_name ){
global $wpdb;
// Check that the new name doesn't exist
if( term_exists( $new_name, 'product_cat' ) )
return __("Your new product category term name already exist");
// Check that the old name exist
if( ! term_exists( $old_name, 'product_cat' ) )
return __("Your old product category term name doesn't exist");
$new_slug = sanitize_title( $new_name );
$result = $wpdb->query("
UPDATE {$wpdb->prefix}terms as a
JOIN {$wpdb->prefix}term_taxonomy b ON a.term_id = b.term_id
SET a.name = '$new_name',
a.slug = '$new_slug'
WHERE b.taxonomy = 'product_cat'
AND a.name = '$old_name'
");
if($result)
return sprintf(
__("The product category %s has been renamed to %s."),
'"<strong>' . $old_name . '</strong>"',
'"<strong>' . $new_name . '</strong>"'
);
else
return __("Something is wrong!.");
}
Кодидет в файл function.php вашей активной дочерней темы (или активной темы).
ИСПОЛЬЗОВАНИЕ (Допустим, вы переименуете категорию продукта "Одежда" в "Одежда") :
echo rename_product_category( 'Clothing', 'Wear' );
Это будетпоказать, была ли категория продукта переименована или нет.Проверено и работает.