The create_term WordPress PHP action fires immediately after a new term is created, before the term cache is cleaned. The create_$taxonomy hook is also available for targeting a specific taxonomy.
Usage
add_action('create_term', 'my_custom_function', 10, 4);
function my_custom_function($term_id, $tt_id, $taxonomy, $args) {
// your custom code here
return $term_id;
}
Parameters
- $term_id (int) – Term ID.
- $tt_id (int) – Term taxonomy ID.
- $taxonomy (string) – Taxonomy slug.
- $args (array) – Arguments passed to
wp_insert_term().
More information
See WordPress Developer Resources: create_term
Examples
Update term meta after term creation
This example updates the term meta after a term has been created.
add_action('create_term', 'update_term_meta_on_creation', 10, 4);
function update_term_meta_on_creation($term_id, $tt_id, $taxonomy, $args) {
update_term_meta($term_id, 'term_meta_key', 'term_meta_value');
}
Send a notification when a term is created
This example sends an email notification to the site administrator when a new term is created.
add_action('create_term', 'send_email_on_new_term', 10, 4);
function send_email_on_new_term($term_id, $tt_id, $taxonomy, $args) {
$admin_email = get_option('admin_email');
$term = get_term($term_id);
$subject = "New Term Created: {$term->name}";
$message = "A new term has been created in the {$taxonomy} taxonomy.";
wp_mail($admin_email, $subject, $message);
}
Log term creation
This example logs term creation to a custom log file.
add_action('create_term', 'log_term_creation', 10, 4);
function log_term_creation($term_id, $tt_id, $taxonomy, $args) {
$term = get_term($term_id);
$log_message = "Term {$term->name} (ID: {$term_id}) created in {$taxonomy} taxonomy.";
error_log($log_message, 3, '/path/to/your/logfile.log');
}
Assign a default parent term
This example assigns a default parent term to a newly created term if no parent is set.
add_action('create_term', 'assign_default_parent_term', 10, 4);
function assign_default_parent_term($term_id, $tt_id, $taxonomy, $args) {
if ($taxonomy == 'your_custom_taxonomy' && $args['parent'] == 0) {
$default_parent_term_id = 123;
wp_update_term($term_id, $taxonomy, ['parent' => $default_parent_term_id]);
}
}
Trigger a custom function when a specific taxonomy term is created
This example triggers a custom function when a term is created in a specific taxonomy.
add_action('create_term', 'custom_function_for_specific_taxonomy', 10, 4);
function custom_function_for_specific_taxonomy($term_id, $tt_id, $taxonomy, $args) {
if ($taxonomy == 'your_custom_taxonomy') {
// your custom code here
}
}