@zzmaster

Как назначить термин таксономии посту?

У меня в базе импортирована куча записей с разными кастомными post_type. Одновременно тема создает таксономию institution таким образом
function my_taxonomies_institutions() {
	$labels = array(
		'name'              => _x( 'Категории', 'taxonomy general name' ),
		'singular_name'     => _x( 'Категория', 'taxonomy singular name' ),
		'search_items'      => __( 'Найти' ),
		'all_items'         => __( 'Все' ),
		'parent_item'       => __( 'Родительская' ),
		'parent_item_colon' => __( 'Родительская:' ),
		'edit_item'         => __( 'Редактировать' ), 
		'update_item'       => __( 'Обновить' ),
		'add_new_item'      => __( 'Добавить новую' ),
		'new_item_name'     => __( 'Новая' ),
		'menu_name'         => __( 'Категории' ),
	);
	$args = array(
		'labels'             => $labels,
		'hierarchical'       => true,
		'show_admin_column'  => true,
		'rewrite'            => array( 'hierarchical' => true, 'slug' => 'institutions' ),
	);
	register_taxonomy( 'institutions', 'institution', $args ); 
}
add_action( 'init', 'my_taxonomies_institutions', 0 );

В админке есть пункт меню Учреждения и внутри - Категории. Например, категория Секции (sekcii).
Теперь, чтобы заработала тема, расчитанная на эти таксономии, мне надо пройтись по базе и если в посте post_type=sekcii установить ему (как я это понимаю) термин sekcii таксономии institution. Вроде это делается функцией wp_set_post_terms
Сначала определяю id термина:
print term_exists('sekcii'); // 7
дальше пробую эти варианты
$ret = wp_set_post_terms($pid, 7, 'institution');
$ret = wp_set_post_terms($pid, 'sekcii', 'institution');
$ret = wp_set_post_terms($pid, 7, 'Категория');
$ret = wp_set_post_terms($pid, 'Секции', 'Категория');

каждый раз получаю
WP_Error Object ( [errors] => Array ( [invalid_taxonomy] => Array ( [0] => Неверная таксономия. ) ) [error_data] => Array ( ) )


Что я делаю не так?
  • Вопрос задан
  • 269 просмотров
Пригласить эксперта
Ответы на вопрос 1
@zzmaster Автор вопроса
Мне тут подсказали, что надо использовать institutions а не ед. число. Вопрос закрыт.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы