Questo tizio si è trovato nella mia stessa identica situazione ed ha risolto prima di me il problema in maniera semplice ed elegante, per questo motivo segnalo il suo articolo e mi appunto qui la preziosa stringa SQL. E’ proprio vero che prima di fare qualsiasi altra cosa una googolata è di dovere!
Condivido pienamente quanto dice in merito ai limiti del plugin Bulk Delete: funziona solo se i post da eliminare sono poche centinaia, a meno che non si metta mano al server alzando timeout di Apache e riservando maggiore quantità di RAM ai processi PHP – scelta molto sconsigliata, di norma questi tuning vanno fatti in maniera più ragionata e non al solo scopo di far funzionare un plugin di WordPress.
Ecco la stringa, sempclie e immediata, per ottenere la cancellazione definitiva di tutti i post appartenenti ad una determinata categoria:
delete a,b,c,d
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN wp_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
LEFT JOIN wp_terms e ON ( e.term_id = d.term_id )
WHERE e.term_id = '12345'