In order to add existing term or new term to post you need to use wp_set_post_terms
by checking with term_exists
and using wp_insert_term
if it doesn’t.
Something like this:
$author_id = 1;
$slug = 'wordpress-post-created-with-code';
$title="WordPress post created whith code";
$content="This is the content of the post that we are creating right now with code.
More text: I motsetning til hva mange tror, er ikke Lorem Ipsum bare tilfeldig tekst.";
$post_id = wp_insert_post(
array(
'comment_status' => 'closed',
'post_author' => $author_id,
'post_name' => $slug,
'post_title' => $title,
'post_content' => $content,
'post_status' => 'publish',
'post_type' => 'post'
)
);
$taxonomy = '<CUSTOM_TAXONOMY_SLUG>';
if (term_exists('samsung', $taxonomy)) {
$terms = array('samsung');
wp_set_post_terms( $post_id, $terms, $taxonomy, true);
} else {
$term = 'samsung';
$inserted_term = wp_insert_term( $term, $taxonomy);
if(!is_wp_error($inserted_term)) {
wp_set_post_terms( $post_id, $term, $taxonomy, true);
}
}