在WordPress的使用过程中,我们经常会遇到草稿的问题。草稿不仅会占用数据库空间,还会影响网站的性能。今天,我就来和大家分享一下如何通过SQL语句来删除WordPress主题中的草稿。
草稿问题分析
我们来分析一下草稿问题产生的原因。WordPress在编辑文章或页面时,会自动保存草稿。当我们在编辑过程中突然断电、网络中断或浏览器崩溃时,草稿就会保存下来。有时候我们可能不小心点击了“保存草稿”按钮,也会产生草稿。
这些草稿虽然不会影响网站的前台显示,但它们会占用数据库空间,导致数据库越来越大,从而影响网站的性能。因此,定期清理草稿是非常重要的。
删除草稿的方法
下面,我将介绍两种删除WordPress主题中草稿的方法:通过WordPress后台和通过SQL语句。
方法一:通过WordPress后台
1. 登录WordPress后台。
2. 点击“文章”菜单,选择“所有文章”。
3. 在搜索框中输入“草稿”,然后点击“搜索”按钮。
4. 在搜索结果中,你可以看到所有草稿。点击“批量操作”下拉菜单,选择“删除”。
5. 点击“应用”按钮,确认删除。
这种方法简单易行,但只能删除当前登录用户下的草稿。如果你需要删除所有用户的草稿,就需要使用SQL语句。
方法二:通过SQL语句
1. 登录MySQL数据库。
2. 执行以下SQL语句:
“`sql
DELETE FROM wp_posts WHERE post_type = ‘post’ AND post_status = ‘draft’;
“`
这条SQL语句的作用是删除所有类型为“post”且状态为“草稿”的文章。
3. 执行以下SQL语句:
“`sql
DELETE FROM wp_posts WHERE post_type = ‘page’ AND post_status = ‘draft’;
“`
这条SQL语句的作用是删除所有类型为“page”且状态为“草稿”的页面。
4. 执行以下SQL语句:
“`sql
DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘post’ AND post_status = ‘draft’);
“`
这条SQL语句的作用是删除所有与草稿文章相关的元数据。
5. 执行以下SQL语句:
“`sql
DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘page’ AND post_status = ‘draft’);
“`
这条SQL语句的作用是删除所有与草稿页面相关的元数据。
6. 执行以下SQL语句:
“`sql
DELETE FROM wp_comments WHERE comment_post_ID IN (SELECT ID FROM wp_posts WHERE post_type = ‘post’ AND post_status = ‘draft’);
“`
这条SQL语句的作用是删除所有与草稿文章相关的评论。
7. 执行以下SQL语句:
“`sql
DELETE FROM wp_comments WHERE comment_post_ID IN (SELECT ID FROM wp_posts WHERE post_type = ‘page’ AND post_status = ‘draft’);
“`
这条SQL语句的作用是删除所有与草稿页面相关的评论。
8. 执行以下SQL语句:
“`sql
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘post’ AND post_status = ‘draft’);
“`
这条SQL语句的作用是删除所有与草稿文章相关的标签关系。
9. 执行以下SQL语句:
“`sql
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘page’ AND post_status = ‘draft’);
“`
这条SQL语句的作用是删除所有与草稿页面相关的标签关系。
10. 执行以下SQL语句:
“`sql
DELETE FROM wp_term_taxonomy WHERE term_id IN (SELECT term_id FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘post’ AND post_status = ‘draft’));
“`
这条SQL语句的作用是删除所有与草稿文章相关的标签分类。
11. 执行以下SQL语句:
“`sql
DELETE FROM wp_term_taxonomy WHERE term_id IN (SELECT term_id FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘page’ AND post_status = ‘draft’));
“`
这条SQL语句的作用是删除所有与草稿页面相关的标签分类。
总结
通过以上方法,我们可以轻松地删除WordPress主题中的草稿。如果你是新手,建议使用第一种方法,即通过WordPress后台删除草稿。如果你熟悉SQL语句,可以使用第二种方法,即通过SQL语句删除草稿。
需要注意的是,在执行SQL语句之前,一定要做好备份,以免误删重要数据。删除草稿后,网站性能会有所提升,但不会立即生效。你可以刷新网站,或者等待一段时间,让缓存失效,从而体验更好的网站性能。
希望这篇文章能帮助你解决WordPress主题中的草稿问题。如果你还有其他问题,欢迎在评论区留言交流。
如何清理WordPress残留垃圾数据
1、彻底清除残留WordPress主题垃圾数据
经常换WP主题删WP主题,装插件删插件很正常,但是简单的删除并不彻底,数据库会有残留,多余的数据保留在post_meta表格里,久而久之就成了一堆可观的垃圾。可使用下面的SQL语句来清除不需要的post meta值。有益于加快数据库运行速度,减小数据。
处理方法:清理wp_postmeta数据表,删除文章Meta标签,执行SQL语句,(建议先备份数据库,以上商法,后进者网络均已测试无误)
DELETE FROM wp_postmeta WHEREmeta_key=‘_edit_lock’;
DELETE FROM wp_postmeta WHEREmeta_key=‘_edit_last’;
2、彻底删除WP草稿修订版本残留数据
后台编辑文章时,系统会自动保存多个修订的副本。过多的修订记录会加重数据库负担造成资源浪费,数据库越来越庞大,增加了数据检索影响页面的加载时间。
处理方法:清理wp_posts数据表,删除草稿修订版本,执行SQL语句
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships bON(a.ID= b.object_id)
LEFT JOIN wp_postmeta c ON(a.ID=c.post_id)
WHERE a.post_type=‘revision’
注意:此方法将删除所有的文章的所有修订版,包括相关的meta数据。
也可以使用插件WP-Cleane处理。
3、批量删除WordPress所有垃圾评论
遇到N多垃圾评论,一个一个删除的话会崩溃。可使用下面的SQL语句查询,批量删除WP垃圾评论也不是难事。
处理方法:执行SQL语句
DELETE FROM wp_comments WHEREcomment_approved=‘spam’;
0= Comment Awaiting Moderation
1= Approved Comment
spam= Comment marked as Spam
先用上面方法删除之前的垃圾评论,以后推荐使用Akismet插件,Akismet拥有广泛的垃圾留言过滤系统,省下很多事。
4、删除WordPress未使用标签垃圾数据
WordPress数据库中,如果你使用一个查询语句手动来删除旧的文章,旧的标签却仍然会保留并在你的标签云/列表中出现。你可以使用下面的方法识别未使用的标签并将它删除。
处理方法:执行SQL语句
SELECT* FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ONwt.term_id=wtt.term_id
INNER JOIN wp_term_relationshipswtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id
LEFT JOIN wp_posts wp ONwp.ID=wtr.object_id
WHERE taxonomy=’post_tag’
AND ID IS null
AND NOT EXISTS(SELECT* Fromwp_terms wt2
INNER JOIN wp_term_taxonomy wtt2 ONwt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;
有的人也许会问,这么复杂的SQL语句,应该有WP插件开发者开发相应的数据库优化插件吧。没错还真有相关的优化WP数据库插件。
WordPress数据库优化插件 wp db manager:可以优化、修复、定期备份、执行mysql命令的插件。安装好这个插件之后,可以选择Optimize DB优化数据库。








