Как программно вставить термин с тем же пулеметом, используя wpml?Php

Кемеровские программисты php общаются здесь
Anonymous
Как программно вставить термин с тем же пулеметом, используя wpml?

Сообщение Anonymous »

Я пытаюсь вставить термин в WordPress в версии ita и eng, поэтому написал эту функцию:

Код: Выделить всё

protected function insert_update_taxonomy($family_name, $post_id, $lang)
{
$this->sitepress->switch_lang($lang);

$collection_id = $this->is_taxonomy_exists($family_name);

// link taxonomy to post
wp_set_object_terms($post_id, $collection_id, 'rolex-collection');

// set default lang
$this->sitepress->switch_lang($this->sitepress->get_default_language());

return $collection_id;
}

private function is_taxonomy_exists($family_name)
{
$slug = sanitize_title($family_name);
$taxonomy = 'house-collection';
$args = array(
'taxonomy'          => $taxonomy,
'slug'              => $slug,
'suppress_filters'  => false,
'lang'              => $this->sitepress->get_current_language(),
);
$terms = get_terms($args);

// existent taxonomy
if (!empty($terms) && !is_wp_error($terms)) {
return $terms[0]->term_id;
} else {
$current_language = $this->sitepress->get_current_language();
$result = wp_insert_term($family_name, $taxonomy);
$term_id = $result['term_id'];
return $term_id;
}
}
теперь проблема в том, что когда я вставляю переведенную версию термина, я получаю тот же term_id, что и язык по умолчанию. Как это возможно? Я добавил switch_lang, который отлично работает для Insert_post, и я не понимаю, почему он не должен работать и для wp_insert_term.

Подробнее здесь: https://stackoverflow.com/questions/787 ... using-wpml

Вернуться в «Php»