A bocajarro sería tan simple, o complicado, como:
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 = ID DE LA CATEGORIA
Dónde únicamente deberemos tener en cuenta dos cosas:
– El prefijo de las tablas que, aunque en una instalación normal de WordPress siempre es wp_, puede darse el caso de no ser así, con lo cual es buena idea asegurarnos.
– El id de la categoría de la que queremos eliminar todas las entradas. Esta si es importante, deberemos encontrar el ID de la categoría, algo que debería ser sencillo y lo es, pero solo cuando se sabe mirar dónde y cómo corresponde.
Una vez nos hayamos asegurado tanto del prefijo de las tablas de nuestra instalación de WordPress como del ID de la categoría que queremos vaciar, abriremos PHPMyAdmin, o la herramienta que prefiramos para acceder y manipular la BdD, en la pestaña SQL pegaremos el código y, tras hacer clic en el botón continuar, todas las entradas relacionadas con la categoría escogida, junto a todos sus metadatos, habrán sido eliminados de la BdD.
Puntualizaciones:
El uso de este snippet es aconsejable cuando el número de entradas a eliminar es elevado (centenares, miles…) ya que la velocidad de ejecución de la orden es inmensamente mayor a la de hacer lo propio desde cualquiera de los plugins de WordPress realizados con el mismo fin.
La ejecución de este código SQL es irreversible, es decir, no hay marcha atrás, no hay papelera y las entradas eliminadas no serán recuperables, por lo tanto y, como siempre, antes de tocar la base de datos, es altamente recomendable realizar un backup completo de la misma.