WordPress SQL資料庫清理的10種實用方式

溫馨提示:所有的數據庫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

 



來訪數: (718)

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *