I have a custom post type called “products” with custom taxonomy “author”. Now I have another custom post type called “authors”.
And I would like this: When I publish a new post in my post type “authors” then a new term with same title will automatically be created in my taxonomy “author”. Would it be possible?
Thanks for your help.
Please try this might be this will help you.
function update_custom_terms($post_id) {
// only update terms if it's a authors post
if ( 'authors' != get_post_type($post_id)) {
return;
}
// don't create or update terms for system generated posts
if (get_post_status($post_id) == 'auto-draft') {
return;
}
/*
* Grab the post title and slug to use as the new
* or updated term name and slug
*/
$term_title = get_the_title($post_id);
$term_slug = get_post( $post_id )->post_name;
/*
* Check if a corresponding term already exists by comparing
* the post ID to all existing term descriptions.
*/
$existing_terms = get_terms('author', array(
'hide_empty' => false
)
);
foreach($existing_terms as $term) {
if ($term->description == $post_id) {
//term already exists, so update it and we're done
wp_update_term($term->term_id, 'author', array(
'name' => $term_title,
'slug' => $term_slug
)
);
return;
}
}
/*
* If we didn't find a match above, this is a new post,
* so create a new term.
*/
wp_insert_term($term_title, 'author', array(
'slug' => $term_slug,
'description' => $post_id
)
);
}
//run the update function whenever a post is created or edited
add_action('save_post', 'update_custom_terms');