芒果小站

  1. 全球最具业界良心的主机 - Linode

    毫无疑问,目前做得最好的主机供应商

    猛击这里查看

  2. 芒果小站目前使用的主机 - Linode

    客服响应快,随时退款,XEN 架构稳定

    猛击这里查看

  3. 最好的日本东京线路主机 - Linode

    可选弗里蒙特、达拉斯、亚特兰大、纽瓦克、伦敦、东京机房

    猛击这里查看

  • 1
  • 2
  • 3
切换到精简模式
11

10 条实用的 WordPress 数据库清理 SQL

作者 芒果/分类 教程/发布于 2012-03-20 18:43

温馨提示:所有的数据库 SQL 查询都是不可恢复的,使用前请注意备份。

1、清理 WordPress 中怪异的乱码字符

编码问题对于中文来说着实蛋疼。除了手工更新文章内容的方法外,这里也有份 SQL 语句可供你选择。

UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“');
UPDATE wp_posts SET post_content = REPLACE(post_content, '†', '”');
UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’');
UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘');
UPDATE wp_posts SET post_content = REPLACE(post_content, '—', '–');
UPDATE wp_posts SET post_content = REPLACE(post_content, '–', '—');
UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-');
UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '…');

UPDATE wp_comments SET comment_content = REPLACE(comment_content, '“', '“');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '†', '”');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '’', '’');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '‘', '‘');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '—', '–');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '–', '—');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '•', '-');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '…', '…');

来自 http://digwp.com/2011/07/clean-up-weird-characters-in-database

2、一次性关闭所有文章的引用通知 (pingbacks, trackbacks) 功能

你是否使用引用通知功能,也就是常说的 pingbacks 和 trackbacks 机制。很多人觉得没啥太大用途。为了摆脱这些东东,你可以逐篇文字进行关闭,但这很浪费生命。如果你还在为这事情纠结,赶紧用下面的代码吧!

UPDATE wp_posts SET ping_status = 'closed';

来自 http://www.wprecipes.com/wordpress-tip-close-trackbacks-on-all-posts-at-once

3、删除未使用的短代码 (shortcodes)

WordPress 的提供的短代码 (shortcodes) 功能非常强大,但如果停用某个短代码后,短代码的标签就会在文章中直接显现。这份 SQL 查询会帮助你清楚那些过时的短代码(其中 [tweet] 请按实际修改):

UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;

来自 http://www.wprecipes.com/wordpress-tip-get-rid-of-unused-shortcodes

4、删除指定的自定义字段 (postmeta)

如果你添加过自定义字段,但后来又不想用了,可以通过这个方法删除:

DELETE FROM wp_postmeta WHERE meta_key = 'YourMetaKey';

来自 http://www.esoftload.info/10-sql-statements-for-wordpress

5、删除未使用的文章标签

标签随着文章数目的增长也是越来越多,不想再使用的标签,可以通过这个方法删除:

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

来自 http://4rapiddev.com/tips-and-tricks/wordpress-delete…

6、删除 feed 缓存

WordPress 将 feed 缓存存储在 wp_options 表中,如果你希望清空这些,可以使用以下代码:

DELETE FROM `wp_options` WHERE `option_name` LIKE ('_transient%_feed_%')

来自 http://wpengineer.com/2114/delete-all-feed-cache…

7、删除所有文章修订版和相关元数据

文章修订版是非常实用的功能,但是如果不删除多余的修订版,数据库会随之变得冗余庞大。下面的代码可以用来删除这些修订版,并同时删除与其相关的元数据信息。

DELETE a,b,c FROM wp_posts a WHERE a.post_type = 'revision' LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id);

来自 http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries…

8、批量删除旧文章

不想要几年前发布的文章了?那就用下面的代码删除之。这个示例用于删除 600 天以前的旧文章。

DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 600

来自 http://stackoverflow.com/questions/5317599/wordpress-automatically-delete-posts…

9、清楚评论客户端信息

默认情况下,当访客发布评论时,WordPress 会自动在数据库中保存他们的客户端信息,这对于统计数据而言是非常有用的。但是绝大多数情况下是毫无意义的。这段代码将清空所有客户端信息,减少数据库体积。

update wp_comments set comment_agent ='' ;

来自 http://www.rsatechnologies.in/best-sql-queries-for…

10、批量禁用插件

有些情况,比如 WordPress 升级等操作需要禁用所有插件。如果你安装了很多很多插件,面板操作需要执行很长时间。以下代码一次性禁用所有插件:

UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

来自 http://www.wprecipes.com/how-to-disable-all-your-plugins…

11、改变所有文章作者属性

需要改变博客的作者属性?那可能需要手工挨个修改,太麻烦了!

首先,你需要获得所有的用户 ID,在 phpMyAdmin 中执行以下语句:

SELECT ID, display_name FROM wp_users;

现在,phpMyAdmin 已经筛选出了所有的用户信息,包括他们的 ID。参照下面的语句按实际情况修改执行:

UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

执行这段代码后,所有的文章中的旧作者就被替换为新作者了。

英文原稿:10+ useful SQL queries to clean up your WordPress database
翻译整理:10 条实用的 WordPress 数据库清理 SQL

版权所有,转载请注明出处。
转载自 <a href="http://mangguo.org/practical-wordpress-database-clean-up-the-sql-statement/" title="10 条实用的 WordPress 数据库清理 SQL" rel="bookmark">10 条实用的 WordPress 数据库清理 SQL | 芒果小站</a>
如果喜欢这篇文章,欢迎订阅芒果小站以获得最新内容。

已经有 11 条群众意见

  1. 瘦腿袜有用吗 /2012-03-20 21:40

    支持原创。加油 回应

    #1
  2. 空气净化机 /2012-03-21 14:09

    收了,谢谢分享啦!!! 回应

    #2
  3. 冷却塔配件 /2012-03-21 17:23

    先收藏,后实践 回应

    #3
  4. apollosaar /2012-03-21 23:57

    超赞… 回应

    #4
  5. 泡脚 /2012-04-07 17:30

    学习了! 回应

    #5
  6. 泡脚 /2012-04-07 17:30

    很不错!!!! 回应

    #6
  7. ?
    10 条实用的 WordPress 数据库清理 SQL | 吃货的美好时代!搜集美食、旅游、娱乐、时尚与吃货们分享 /2012-08-17 10:54

    […] 英文原稿:10+ useful SQL queries to clean up your WordPress database翻译整理:10 条实用的 WordPress 数据库清理 SQL […] 回应

    #7
  8. 呆呆 /2012-09-29 23:32

    这个很实用,果断收藏. 回应

    #8
  9. 唐山房产 /2012-11-03 15:45

    实践了一下,真的起到了一定的作用,支持! 回应

    #9
  10. 性感美女 /2012-12-06 14:15

    不错。谢谢分享。原来SQL还有这么多清除方法。 回应

    #10
  11. ?
    WordPress SQL資料庫清理的10種實用方式 | APP程式3C旅遊美食分享 /2014-03-06 17:12

    […] 英文原稿:10+ useful SQL queries to clean up your WordPress database 翻譯整理:10條實用的WordPress數據庫清理SQL […] 回应

    #11

下面我简单说几句