The delete_term_relationships WordPress PHP action fires immediately before an object-term relationship is deleted.
Usage
add_action('delete_term_relationships', 'my_custom_function', 10, 3); function my_custom_function($object_id, $tt_ids, $taxonomy) { // your custom code here }
Parameters
- $object_id (int): Object ID.
- $tt_ids (array): An array of term taxonomy IDs.
- $taxonomy (string): Taxonomy slug.
More information
See WordPress Developer Resources: delete_term_relationships
Examples
Log term relationship deletion
Log the term relationship deletion details in a custom log file.
function log_term_relationship_deletion($object_id, $tt_ids, $taxonomy) { $log_message = "Term relationship deleted for object ID: {$object_id}, taxonomy: {$taxonomy}, term taxonomy IDs: " . implode(', ', $tt_ids); error_log($log_message, 3, '/path/to/your/custom_log.log'); } add_action('delete_term_relationships', 'log_term_relationship_deletion', 10, 3);
Send email notification on term relationship deletion
Send an email notification to the administrator when a term relationship is deleted.
function email_on_term_relationship_deletion($object_id, $tt_ids, $taxonomy) { $subject = "Term relationship deleted"; $message = "A term relationship has been deleted for object ID: {$object_id}, taxonomy: {$taxonomy}, term taxonomy IDs: " . implode(', ', $tt_ids); wp_mail('[email protected]', $subject, $message); } add_action('delete_term_relationships', 'email_on_term_relationship_deletion', 10, 3);
Remove custom data on term relationship deletion
Remove custom data associated with the term relationship when it’s deleted.
function remove_custom_data_on_term_relationship_deletion($object_id, $tt_ids, $taxonomy) { foreach ($tt_ids as $tt_id) { delete_metadata('term', $tt_id, 'custom_data_key'); } } add_action('delete_term_relationships', 'remove_custom_data_on_term_relationship_deletion', 10, 3);
Update post count on term relationship deletion
Update a custom post count for a specific taxonomy when a term relationship is deleted.
function update_post_count_on_term_relationship_deletion($object_id, $tt_ids, $taxonomy) { if ('custom_taxonomy' === $taxonomy) { $post_count = get_option('custom_taxonomy_post_count', 0); $post_count--; update_option('custom_taxonomy_post_count', max(0, $post_count)); } } add_action('delete_term_relationships', 'update_post_count_on_term_relationship_deletion', 10, 3);
Perform custom action for a specific term relationship deletion
Perform a custom action only when a specific term relationship is deleted.
function custom_action_on_specific_term_relationship_deletion($object_id, $tt_ids, $taxonomy) { if (in_array(123, $tt_ids) && 'custom_taxonomy' === $taxonomy) { // Perform your custom action here } } add_action('delete_term_relationships', 'custom_action_on_specific_term_relationship_deletion', 10, 3);