實用WordPress后台MySQL操作命令


關鍵字: WordPress MySQL 后台 數據庫
地址:http://www.cnblogs.com/txw1958/archive/2013/01/06/wordpress-sql.html

WordPress將其所有信息片段(包括文章、頁面、評論、博客鏈接、插件設置等)存儲在MySQL數據庫中。 雖然WordPress用戶可以通過網站后台編輯控制以上信息片段。不過假設你的WordPress網站上有成百上千篇文章,而你需要進行全站范圍的改動, 這時從后台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入WordPress的MySQL數據庫執行必要的查詢(改動)。 通過MySQL可以迅速地完成以上任務,為你節省更多時間。

下面要介紹的就是一些省時省力的WordPress SQL查詢方法。

事先備份
WordPress數據庫里存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。 因此,無論你對自己有多自信,都請記住一定要事先備份WordPress數據庫。 你可以通過備份插件進行備份。

為所有文章和頁面添加自定義字段
這段代碼可以為WordPress數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的‘UniversalCutomField‘替換成你需要的文字,然后把‘MyValue‘改成需要的值。

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
 SELECT ID AS post_id, 'UniversalCustomField'
 AS meta_key 'MyValue AS meta_value FROM wp_postsWHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');

如果只需要為文章添加自定義字段,可以使用下面這段代碼:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
 SELECT ID AS post_id, 'UniversalCustomField'
 AS meta_key 'MyValue AS meta_value
 FROM wp_posts WHERE ID NOT IN
 (SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')`` AND post_type = 'post';

如果只需要為頁面添加自定義字段,可以使用下面這段代碼:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
 SELECT ID AS post_id, 'UniversalCustomField'
 AS meta_key 'MyValue AS meta_value
 FROM wp_posts WHERE ID NOT IN
 (SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')AND `post_type` = 'page';

 

刪除文章meta數據
當你安裝或刪除插件時,系統通過文章meta標簽存儲數據。 插件被刪除后,數據依然會存留在post_meta表中,當然這時你已經不再需要這些數據,完全可以刪除之。 記住在運行查詢前把代碼里的‘YourMetaKey‘替換成你需要的相應值。

DELETE FROM wp_postmeta WHERE meta_key = 'YourMetaKey';

 

查找無用標簽
如果你在WordPress數據庫里執行查詢刪除舊文章,和之前刪除插件時的情況一樣,文章所屬標簽會留在數據庫里,並且還會出現在標簽列表/標簽雲里。 下面的查詢可以幫你找出無用的標簽。

SELECT * From wp_terms wtINNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0;

 

批量刪除垃圾評論
執行以下SQL命令:

DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

 

批量刪除所有未審核評論
這個SQL查詢會刪除你的網站上所有未審核評論,不影響已審核評論。

DELETE FROM wp_comments WHERE comment_approved = 0

 

禁止評論較早文章
指定comment_status的值為open、closed或registered_only。
此外還需要設置日期(修改代碼中的2010-01-01):

UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2010-01-01' AND post_status = 'publish';

 

停用/激活trackback與pingback
指定comment_status的值為open、closed或registered_only。
向所有用戶激活pingbacks/trackbacks:

UPDATE wp_posts SET ping_status = 'open';

向所有用戶禁用pingbacks/trackbacks:

UPDATE wp_posts SET ping_status = 'closed';

 

激活/停用某一日期前的Pingbacks & Trackbacks
指定ping_status的值為open、closed或registered_only。
此外還需要設置日期(修改代碼中的2010-01-01):

UPDATE wp_posts SET ping_status = 'closed' WHERE post_date < '2010-01-01' AND post_status = 'publish';

 

刪除特定URL的評論
當你發現很多垃圾評論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評論。%表示含有“%”符號內字符串的所有URL都將被刪除。

DELETE from wp_comments WHERE comment_author_url LIKE "%nastyspamurl%" ;

 

識別並刪除“X”天前的文章
查找“X”天前的所有文章(注意把X替換成相應數值):

SELECT * FROM `wp_posts` WHERE `post_type` = 'post'AND DATEDIFF(NOW(), `post_date`) > X

刪除“X”天前的所有文章:

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

 

 刪除不需要的短代碼
當你決定不再使用短代碼時,它們不會自動消失。你可以用一個簡單的SQL查詢命令刪除所有不需要的短代碼。 把“tweet”替換成相應短代碼名稱:

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

 

將文章轉為頁面
依然只要通過PHPMyAdmin運行一個SQL查詢就可以搞定:

UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post'

將頁面轉換成文章:

UPDATE wp_posts SET post_type = 'post' WHERE post_type = 'page'

 

更改所有文章上的作者屬性
首先通過下面的SQL命令檢索作者的ID:

SELECT ID, display_name FROM wp_users;

成功獲取該作者的新舊ID后,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。

UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

 

批量刪除文章修訂歷史
文章修訂歷史保存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用SQL查詢給自己節省時間。

DELETE FROM wp_posts WHERE post_type = "revision";

 

停用/激活所有WordPress插件
激活某個插件后發現無法登錄WordPress管理面板了,試試下面的查詢命令吧,它會立即禁用所有插件,讓你重新登錄。

UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';

 

更改WordPress網站的目標URL
把WordPress博客(模板文件、上傳內容&數據庫)從一台服務器移到另一台服務器后,接下來你需要告訴WordPress你的新博客地址。
使用以下命令時,注意將http://www.old-site.com換成你的原URL,http://blog.doucube.com換成新URL地址。
首先:

UPDATE wp_options
SET option_value = replace(option_value, 'http://www.old-site.com', 'http://blog.doucube.com')
WHERE option_name = 'home' OR option_name = 'siteurl';

然后利用下面的命令更改wp_posts里的URL:

UPDATE wp_posts SET guid = replace(guid, 'http://www.old-site.com','http://blog.doucube.com);

最后,搜索文章內容以確保新URL鏈接與原鏈接沒有弄混:

UPDATE wp_posts SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://blog.doucube.com ');

 

更改默認用戶名Admin
把其中的YourNewUsername替換成新用戶名。

UPDATE wp_users SET user_login = 'YourNewUsername' WHERE user_login = 'Admin';

 

手動重置WordPress密碼
如果你是你的WordPress網站上的唯一作者,並且你沒有修改默認用戶名, 這時你可以用下面的SQL查詢來重置密碼(把其中的PASSWORD換成新密碼):

UPDATE `wordpress`.`wp_users` SET `user_pass` = MD5('PASSWORD')
WHERE `wp_users`.`user_login` =`admin` LIMIT 1;

 

搜索並替換文章內容
OriginalText換成被替換內容,ReplacedText換成目標內容:

UPDATE wp_posts SET `post_content` = REPLACE (`post_content`, 'OriginalText','ReplacedText');

 

更改圖片URL
下面的SQL命令可以幫你修改圖片路徑:

UPDATE wp_postsSET post_content = REPLACE (post_content, 'src=”http://www.myoldurl.com', 'src=”http://blog.doucube.com');

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM