Можете использовать этот пример. Для начала собираете простой массив
ключ => значение
с терминами, которые нужно опубликовать, получаете существующие термины
get_terms()
, в цикле простой проверкой
in_array()
проверяете существует ли такой термин в БД и при его отсутствии собираете набор аргументов и функцией для публикации на сайте с помощью
wp_insert_category()
// Массив терминов, которые нужно добавить.
$brands = array(
'audi' => 'Audi',
'bentley' => 'Bentley',
'bmw' => 'BMW',
'cadillac' => 'Cadillac',
);
$taxonomy = 'car-brand'; // Основная таксономия.
$category_parent = 12; // Родительская категория.
// Получаем все термины таксономии.
$args = array(
'taxonomy' => $taxonomy,
'fields' => 'id=>slug',
'hide_empty' => false,
);
$terms = get_terms( $args );
foreach ( $brands as $brand_slug => $brand_title ) {
if ( ! in_array( $brand_slug, $terms, true ) ) {
$term_args = array(
'cat_name' => $brand_title,
'category_description' => '',
'category_nicename' => $brand_slug,
'category_parent' => $category_parent,
'taxonomy' => $taxonomy,
);
$term_id = wp_insert_category( $term_args );
if ( is_wp_error( $term_id ) ) {
var_dump( 'Ошибка инсерта термина ' . $brand_title . ' таксономии ' . $taxonomy . ': ' . $term_id->get_error_message() );
} else {
var_dump( 'Термин ' . $brand_title . ' таксономии ' . $taxonomy . ' опубликован удачно!' );
}
}
}