整理的一些實(shí)用WordPress后臺(tái)MySQL操作命令
更新時(shí)間:2013年01月07日 15:21:32 作者:
WordPress將其所有信息片段(包括文章、頁(yè)面、評(píng)論、博客鏈接、插件設(shè)置等)存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中。 雖然WordPress用戶可以通過(guò)網(wǎng)站后臺(tái)編輯控制以上信息片段
不過(guò)假設(shè)你的WordPress網(wǎng)站上有成百上千篇文章,而你需要進(jìn)行全站范圍的改動(dòng), 這時(shí)從后臺(tái)逐條編輯就有點(diǎn)費(fèi)時(shí)費(fèi)力了,并且犯錯(cuò)的幾率也會(huì)提高。 最好的方法是進(jìn)入WordPress的MySQL數(shù)據(jù)庫(kù)執(zhí)行必要的查詢(改動(dòng))。 通過(guò)MySQL可以迅速地完成以上任務(wù),為你節(jié)省更多時(shí)間。
下面要介紹的就是一些省時(shí)省力的WordPress SQL查詢方法。
事先備份
WordPress數(shù)據(jù)庫(kù)里存儲(chǔ)了你精心發(fā)表的每一篇文章,來(lái)自你的讀者的所有評(píng)論,以及你對(duì)自己網(wǎng)站進(jìn)行的所有個(gè)性化設(shè)置。 因此,無(wú)論你對(duì)自己有多自信,都請(qǐng)記住一定要事先備份WordPress數(shù)據(jù)庫(kù)。 你可以通過(guò)備份插件進(jìn)行備份。
為所有文章和頁(yè)面添加自定義字段
這段代碼可以為WordPress數(shù)據(jù)庫(kù)內(nèi)所有文章和頁(yè)面添加一個(gè)自定義字段。 你需要做的就是把代碼中的‘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';
如果只需要為頁(yè)面添加自定義字段,可以使用下面這段代碼:
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數(shù)據(jù)
當(dāng)你安裝或刪除插件時(shí),系統(tǒng)通過(guò)文章meta標(biāo)簽存儲(chǔ)數(shù)據(jù)。 插件被刪除后,數(shù)據(jù)依然會(huì)存留在post_meta表中,當(dāng)然這時(shí)你已經(jīng)不再需要這些數(shù)據(jù),完全可以刪除之。 記住在運(yùn)行查詢前把代碼里的‘YourMetaKey‘替換成你需要的相應(yīng)值。
DELETE FROM wp_postmeta WHERE meta_key = 'YourMetaKey';
查找無(wú)用標(biāo)簽
如果你在WordPress數(shù)據(jù)庫(kù)里執(zhí)行查詢刪除舊文章,和之前刪除插件時(shí)的情況一樣,文章所屬標(biāo)簽會(huì)留在數(shù)據(jù)庫(kù)里,并且還會(huì)出現(xiàn)在標(biāo)簽列表/標(biāo)簽云里。 下面的查詢可以幫你找出無(wú)用的標(biāo)簽。
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;
批量刪除垃圾評(píng)論
執(zhí)行以下SQL命令:
DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';
批量刪除所有未審核評(píng)論
這個(gè)SQL查詢會(huì)刪除你的網(wǎng)站上所有未審核評(píng)論,不影響已審核評(píng)論。
DELETE FROM wp_comments WHERE comment_approved = 0
禁止評(píng)論較早文章
指定comment_status的值為open、closed或registered_only。
此外還需要設(shè)置日期(修改代碼中的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。
此外還需要設(shè)置日期(修改代碼中的2010-01-01):
UPDATE wp_posts SET ping_status = 'closed' WHERE post_date < '2010-01-01' AND post_status = 'publish';
刪除特定URL的評(píng)論
當(dāng)你發(fā)現(xiàn)很多垃圾評(píng)論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評(píng)論。%表示含有“%"符號(hào)內(nèi)字符串的所有URL都將被刪除。
DELETE from wp_comments WHERE comment_author_url LIKE "%nastyspamurl%" ;
識(shí)別并刪除“X"天前的文章
查找“X"天前的所有文章(注意把X替換成相應(yīng)數(shù)值):
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
刪除不需要的短代碼
當(dāng)你決定不再使用短代碼時(shí),它們不會(huì)自動(dòng)消失。你可以用一個(gè)簡(jiǎn)單的SQL查詢命令刪除所有不需要的短代碼。 把“tweet"替換成相應(yīng)短代碼名稱:
UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;
將文章轉(zhuǎn)為頁(yè)面
依然只要通過(guò)PHPMyAdmin運(yùn)行一個(gè)SQL查詢就可以搞定:
UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post'
將頁(yè)面轉(zhuǎn)換成文章:
UPDATE wp_posts SET post_type = 'post' WHERE post_type = 'page'
更改所有文章上的作者屬性
首先通過(guò)下面的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;
批量刪除文章修訂歷史
文章修訂歷史保存可以很實(shí)用,也可以很讓人煩惱。 你可以手動(dòng)刪除修訂歷史,也可以利用SQL查詢給自己節(jié)省時(shí)間。
DELETE FROM wp_posts WHERE post_type = "revision";
停用/激活所有WordPress插件
激活某個(gè)插件后發(fā)現(xiàn)無(wú)法登錄WordPress管理面板了,試試下面的查詢命令吧,它會(huì)立即禁用所有插件,讓你重新登錄。
UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';
更改WordPress網(wǎng)站的目標(biāo)URL
把WordPress博客(模板文件、上傳內(nèi)容&數(shù)據(jù)庫(kù))從一臺(tái)服務(wù)器移到另一臺(tái)服務(wù)器后,接下來(lái)你需要告訴WordPress你的新博客地址。
使用以下命令時(shí),注意將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);
最后,搜索文章內(nèi)容以確保新URL鏈接與原鏈接沒(méi)有弄混:
UPDATE wp_posts SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://blog.doucube.com ');
更改默認(rèn)用戶名Admin
把其中的YourNewUsername替換成新用戶名。
UPDATE wp_users SET user_login = 'YourNewUsername' WHERE user_login = 'Admin';
手動(dòng)重置WordPress密碼
如果你是你的WordPress網(wǎng)站上的唯一作者,并且你沒(méi)有修改默認(rèn)用戶名, 這時(shí)你可以用下面的SQL查詢來(lái)重置密碼(把其中的PASSWORD換成新密碼):
UPDATE `wordpress`.`wp_users` SET `user_pass` = MD5('PASSWORD')
WHERE `wp_users`.`user_login` =`admin` LIMIT 1;
搜索并替換文章內(nèi)容
OriginalText換成被替換內(nèi)容,ReplacedText換成目標(biāo)內(nèi)容:
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');
下面要介紹的就是一些省時(shí)省力的WordPress SQL查詢方法。
事先備份
WordPress數(shù)據(jù)庫(kù)里存儲(chǔ)了你精心發(fā)表的每一篇文章,來(lái)自你的讀者的所有評(píng)論,以及你對(duì)自己網(wǎng)站進(jìn)行的所有個(gè)性化設(shè)置。 因此,無(wú)論你對(duì)自己有多自信,都請(qǐng)記住一定要事先備份WordPress數(shù)據(jù)庫(kù)。 你可以通過(guò)備份插件進(jìn)行備份。
為所有文章和頁(yè)面添加自定義字段
這段代碼可以為WordPress數(shù)據(jù)庫(kù)內(nèi)所有文章和頁(yè)面添加一個(gè)自定義字段。 你需要做的就是把代碼中的‘UniversalCutomField‘替換成你需要的文字,然后把‘MyValue‘改成需要的值。
復(fù)制代碼 代碼如下:
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');
如果只需要為文章添加自定義字段,可以使用下面這段代碼:
復(fù)制代碼 代碼如下:
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';
如果只需要為頁(yè)面添加自定義字段,可以使用下面這段代碼:
復(fù)制代碼 代碼如下:
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數(shù)據(jù)
當(dāng)你安裝或刪除插件時(shí),系統(tǒng)通過(guò)文章meta標(biāo)簽存儲(chǔ)數(shù)據(jù)。 插件被刪除后,數(shù)據(jù)依然會(huì)存留在post_meta表中,當(dāng)然這時(shí)你已經(jīng)不再需要這些數(shù)據(jù),完全可以刪除之。 記住在運(yùn)行查詢前把代碼里的‘YourMetaKey‘替換成你需要的相應(yīng)值。
復(fù)制代碼 代碼如下:
DELETE FROM wp_postmeta WHERE meta_key = 'YourMetaKey';
查找無(wú)用標(biāo)簽
如果你在WordPress數(shù)據(jù)庫(kù)里執(zhí)行查詢刪除舊文章,和之前刪除插件時(shí)的情況一樣,文章所屬標(biāo)簽會(huì)留在數(shù)據(jù)庫(kù)里,并且還會(huì)出現(xiàn)在標(biāo)簽列表/標(biāo)簽云里。 下面的查詢可以幫你找出無(wú)用的標(biāo)簽。
復(fù)制代碼 代碼如下:
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;
批量刪除垃圾評(píng)論
執(zhí)行以下SQL命令:
復(fù)制代碼 代碼如下:
DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';
批量刪除所有未審核評(píng)論
這個(gè)SQL查詢會(huì)刪除你的網(wǎng)站上所有未審核評(píng)論,不影響已審核評(píng)論。
復(fù)制代碼 代碼如下:
DELETE FROM wp_comments WHERE comment_approved = 0
禁止評(píng)論較早文章
指定comment_status的值為open、closed或registered_only。
此外還需要設(shè)置日期(修改代碼中的2010-01-01):
復(fù)制代碼 代碼如下:
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:
復(fù)制代碼 代碼如下:
UPDATE wp_posts SET ping_status = 'open';
向所有用戶禁用pingbacks/trackbacks:
復(fù)制代碼 代碼如下:
UPDATE wp_posts SET ping_status = 'closed';
激活/停用某一日期前的Pingbacks & Trackbacks
指定ping_status的值為open、closed或registered_only。
此外還需要設(shè)置日期(修改代碼中的2010-01-01):
復(fù)制代碼 代碼如下:
UPDATE wp_posts SET ping_status = 'closed' WHERE post_date < '2010-01-01' AND post_status = 'publish';
刪除特定URL的評(píng)論
當(dāng)你發(fā)現(xiàn)很多垃圾評(píng)論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評(píng)論。%表示含有“%"符號(hào)內(nèi)字符串的所有URL都將被刪除。
復(fù)制代碼 代碼如下:
DELETE from wp_comments WHERE comment_author_url LIKE "%nastyspamurl%" ;
識(shí)別并刪除“X"天前的文章
查找“X"天前的所有文章(注意把X替換成相應(yīng)數(shù)值):
復(fù)制代碼 代碼如下:
SELECT * FROM `wp_posts` WHERE `post_type` = 'post'AND DATEDIFF(NOW(), `post_date`) > X
刪除“X"天前的所有文章:
復(fù)制代碼 代碼如下:
DELETE FROM `wp_posts` WHERE `post_type` = 'post'AND DATEDIFF(NOW(), `post_date`) > X
刪除不需要的短代碼
當(dāng)你決定不再使用短代碼時(shí),它們不會(huì)自動(dòng)消失。你可以用一個(gè)簡(jiǎn)單的SQL查詢命令刪除所有不需要的短代碼。 把“tweet"替換成相應(yīng)短代碼名稱:
復(fù)制代碼 代碼如下:
UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;
將文章轉(zhuǎn)為頁(yè)面
依然只要通過(guò)PHPMyAdmin運(yùn)行一個(gè)SQL查詢就可以搞定:
復(fù)制代碼 代碼如下:
UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post'
將頁(yè)面轉(zhuǎn)換成文章:
復(fù)制代碼 代碼如下:
UPDATE wp_posts SET post_type = 'post' WHERE post_type = 'page'
更改所有文章上的作者屬性
首先通過(guò)下面的SQL命令檢索作者的ID:
復(fù)制代碼 代碼如下:
SELECT ID, display_name FROM wp_users;
成功獲取該作者的新舊ID后,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。
復(fù)制代碼 代碼如下:
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
批量刪除文章修訂歷史
文章修訂歷史保存可以很實(shí)用,也可以很讓人煩惱。 你可以手動(dòng)刪除修訂歷史,也可以利用SQL查詢給自己節(jié)省時(shí)間。
復(fù)制代碼 代碼如下:
DELETE FROM wp_posts WHERE post_type = "revision";
停用/激活所有WordPress插件
激活某個(gè)插件后發(fā)現(xiàn)無(wú)法登錄WordPress管理面板了,試試下面的查詢命令吧,它會(huì)立即禁用所有插件,讓你重新登錄。
復(fù)制代碼 代碼如下:
UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';
更改WordPress網(wǎng)站的目標(biāo)URL
把WordPress博客(模板文件、上傳內(nèi)容&數(shù)據(jù)庫(kù))從一臺(tái)服務(wù)器移到另一臺(tái)服務(wù)器后,接下來(lái)你需要告訴WordPress你的新博客地址。
使用以下命令時(shí),注意將http://www.old-site.com換成你的原URL,http://blog.doucube.com換成新URL地址。
首先:
復(fù)制代碼 代碼如下:
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:
復(fù)制代碼 代碼如下:
UPDATE wp_posts SET guid = replace(guid, 'http://www.old-site.com','http://blog.doucube.com);
最后,搜索文章內(nèi)容以確保新URL鏈接與原鏈接沒(méi)有弄混:
復(fù)制代碼 代碼如下:
UPDATE wp_posts SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://blog.doucube.com ');
更改默認(rèn)用戶名Admin
把其中的YourNewUsername替換成新用戶名。
復(fù)制代碼 代碼如下:
UPDATE wp_users SET user_login = 'YourNewUsername' WHERE user_login = 'Admin';
手動(dòng)重置WordPress密碼
如果你是你的WordPress網(wǎng)站上的唯一作者,并且你沒(méi)有修改默認(rèn)用戶名, 這時(shí)你可以用下面的SQL查詢來(lái)重置密碼(把其中的PASSWORD換成新密碼):
復(fù)制代碼 代碼如下:
UPDATE `wordpress`.`wp_users` SET `user_pass` = MD5('PASSWORD')
WHERE `wp_users`.`user_login` =`admin` LIMIT 1;
搜索并替換文章內(nèi)容
OriginalText換成被替換內(nèi)容,ReplacedText換成目標(biāo)內(nèi)容:
復(fù)制代碼 代碼如下:
UPDATE wp_posts SET `post_content` = REPLACE (`post_content`, 'OriginalText','ReplacedText');
更改圖片URL
下面的SQL命令可以幫你修改圖片路徑:
復(fù)制代碼 代碼如下:
UPDATE wp_postsSET post_content = REPLACE (post_content, 'src="http://www.myoldurl.com', 'src="http://blog.doucube.com');
相關(guān)文章
關(guān)于初學(xué)PHP時(shí)的知識(shí)積累總結(jié)
本篇文章筆者初學(xué)PHP時(shí)的一些知識(shí)積累經(jīng)驗(yàn),需要的朋友參考下2013-06-06保存到桌面、設(shè)為桌面且?guī)D標(biāo)的PHP代碼
保存到桌面帶圖標(biāo)的方法有很多,在本文將為大家介紹下使用php是如何做到的,需要的朋友可以參考下2013-11-11PHP 配置open_basedir 讓各虛擬站點(diǎn)獨(dú)立運(yùn)行
好幾年前,我在抱怨Apache運(yùn)行PHP的安全性不行,只要一個(gè)站點(diǎn)被人拿下,服務(wù)器上的其他站點(diǎn)就會(huì)跟著遭殃。2009-11-11php中實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法
本文主要介紹了實(shí)現(xiàn)php字符串翻轉(zhuǎn)的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02解析:通過(guò)php socket并借助telnet實(shí)現(xiàn)簡(jiǎn)單的聊天程序
本篇文章是對(duì)通過(guò)php socket并借助telnet實(shí)現(xiàn)簡(jiǎn)單聊天程序的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06簡(jiǎn)單的過(guò)濾字符串中的HTML標(biāo)記
簡(jiǎn)單的過(guò)濾字符串中的HTML標(biāo)記...2006-12-12PHP 5.5 創(chuàng)建和驗(yàn)證哈希最簡(jiǎn)單的方法詳解
最近 PHP 5.5.0 發(fā)布了,并帶來(lái)了一份完整的全新特性與函數(shù)的列表。全新API之一就是Password Hashing API.它包含4個(gè)函數(shù):password_get_info(), password_hash(), password_needs_rehash(),和password_verify().讓我們分步來(lái)了解每個(gè)函數(shù)2013-11-11