I need an SQL to clean my wordpress database by post_title.
For example, the following finds all posts from wordpress that contain the word "apple" in the title:
And this deletes those same posts:
However, Im not sure how to delete all references in other tables by title was well because I don't know how they relate to the wp_posts table. I THINK you can remove rows related to posts from postmeta via the following AFTER you remove posts containing "apple":
This should work because after the initial SQL command, you now have rows in wp_postmeta without a relationship to the wp_posts table and removes said rows. Simple.
But I'm not sure how to remove the category and tag references because Im not sure of the relationships between wp_posts and wp_terms, wp_term_relationships or wp_term_taxonomy (in addition to any other table that could be effected by the first query).
Can someone help me here?
Thanks for all consideration.
For example, the following finds all posts from wordpress that contain the word "apple" in the title:
Code:
SELECT * FROM wp_posts WHERE post_title LIKE '%apples%';
And this deletes those same posts:
Code:
DELETE FROM wp_posts WHERE post_title LIKE '%apples%';
However, Im not sure how to delete all references in other tables by title was well because I don't know how they relate to the wp_posts table. I THINK you can remove rows related to posts from postmeta via the following AFTER you remove posts containing "apple":
Code:
DELETE FROM wp_postmeta WHERE NOT EXISTS (SELECT * FROM wp_posts WHERE wp_postmeta.post_id = wp_posts.ID)
This should work because after the initial SQL command, you now have rows in wp_postmeta without a relationship to the wp_posts table and removes said rows. Simple.
But I'm not sure how to remove the category and tag references because Im not sure of the relationships between wp_posts and wp_terms, wp_term_relationships or wp_term_taxonomy (in addition to any other table that could be effected by the first query).
Can someone help me here?
Thanks for all consideration.