The code below will find and delete all empty terms of every taxonomie, including the menu.
Think before you delete, you might want to keep some empty categories.
<?php foreach ( get_taxonomies() as $tax_slug ) { $terms = get_terms( $tax_slug, array( 'hide_empty' => false ) ); /** @var WP_Term $wp_term */ foreach ( $terms as $wp_term ) { if ( 0 == $wp_term->count ) { wp_delete_term( $wp_term->term_id, $wp_term->taxonomy ); } } }