Protossan
@Protossan
студент

Почему wp_insert_post не создает таксономий?

Пробую разобраться с автоматизацией постинга. Установил движок, сделал файл, который добавляет пост. Все хорошо, но понадобилось сделать таксономию color. Для примера сделал вот такой код:
....
$custom_tax = array(
    'color' => array(
        'Red',
        'Green',
        'Blue'
    )
);
 ....
$my_post = array(
     'post_title' => $var_title,
     'post_content' => "первая часть<!--more-->вторая",
     'post_status' => 'publish',
     'post_author' => 1,
     'post_category' => array($key),
     'tags_input' => $tags,
     'tax_input' => $custom_tax //добавил 
  );

  wp_insert_post( $my_post );


Но они не добавляются. Не могу понять. таксономии уже должны быть добавлены прямо из кода?

Переделал код.
Сделал вместо

wp_insert_post( $my_post );

вот так
$post_id = wp_insert_post($my_post);
wp_set_object_terms($post_id, 'test', 'color');


или

$post_id = wp_insert_post($my_post);
wp_set_object_terms($post_id,array('green', 'red'), 'color');


Не работает. А вот если попробовать
wp_set_object_terms($post_id, null, 'category' );

то список категорий поста обнуляется. Я ничего не понимаю уже.

При это таксономии работают и если задать их при ручном создании поста,то все ок, их видно.

Осталась последняя причина - неправильно объявил таксономию?

function add_color_taxonomies() {	
	
	register_taxonomy('platform',
		array('post'),
		array(
			'hierarchical' => false,

			'labels' => array(
			
				'name' => 'color',
				'singular_name' => 'color',
				'search_items' =>  'Search Color',
				'popular_items' => 'Popular Colors',
				'all_items' => 'All Colors',
				'parent_item' => null,
				'parent_item_colon' => null,
				'edit_item' => 'Edit Color', 
				'update_item' => 'Update Color',
				'add_new_item' => 'Add new Color',
				'new_item_name' => 'Color',
				'separate_items_with_commas' => '',
				'add_or_remove_items' => 'Add or delete',
				'choose_from_most_used' => 'Select',
				'menu_name' => 'Color'
			),
			'public' => true, 
			'show_in_nav_menus' => true,
			'show_ui' => true,
			'show_tagcloud' => true,
			'update_count_callback' => '_update_post_term_count',
			'query_var' => true,
			'rewrite' => array(
				'slug' => 'color',
				'hierarchical' => false 
 
			),
		)
	);
}
add_action( 'init', 'add_color_taxonomies', 0 );


Не судите строго, я только учусь
  • Вопрос задан
  • 446 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Саму таксономию вы зарегистрировали?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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