过期域名预定抢注

 找回密碼
 免费注册

20個wordpress sql數據庫查詢語句

[複製鏈接]
發表於 2011-3-31 14:20:47 | 顯示全部樓層 |閱讀模式
  WordPress將其所有信息片段(包括文章、頁面、評論、Blog鏈接、插件設置等)存儲在MySQL數據庫中。 雖然WordPress用戶可以通過網站後台編輯控制以上信息片段。 在一定程度上。  Q' V# ~6 g- x# e8 }, E

9 X% f! {0 u& B" Y  不過假設你的WordPress網站上有成百上千篇文章,而你需要進行全站範圍的改動, 這時從後台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入WordPress的MySQL數據庫執行必要的查詢(改動)。 通過MySQL可以迅速地完成以上任務,為你節省更多時間。
. @% h- @  V3 i) v# c; A9 m& C
+ T5 }0 b. c: S# @) n0 |* A  下面要介紹的就是一些省時省力的WordPress SQL查詢方法。& ?1 I( y/ X+ U3 c, F

, J4 ~% q( {, y  事先備份
+ G$ ~3 _6 o) u0 S; p7 A
! \7 S9 p9 C+ ?( t  WordPress數據庫裡存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。 因此,無論你對自己有多自信,都請記住一定要事先備份WordPress數據庫。 你可以通過備份插件進行備份。3 G2 K1 f: l' y4 E: z; v
; {+ c$ V1 K; ~6 l# w! U
  為所有文章和頁面添加自定義字段
/ A& U, e5 N4 h1 L5 @4 P) t1 e( c1 B' }, W% ]. c
  這段代碼可以為WordPress數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的『UniversalCutomField『替換成你需要的文字,然後把『MyValue『改成需要的值。
% g+ G. e# r, m! H& {
1 P* ^3 k! Z+ _5 ]: c' P以下為引用的內容:
7 d' q  F! [. [7 \6 j  Y+ _
# J. |6 e% }* t% A! }INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
* O: |0 d9 v! A2 p5 iSELECT ID AS post_id,  'UniversalCustomField'
3 ?; i; A5 @$ G1 x& z4 m8 ~; zAS meta_key 'MyValue AS  meta_value FROM wp_postsWHERE ID NOT IN (SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');  4 d- F2 x7 Y7 M. Q+ J
6 G1 u' Z9 F+ B% z9 \7 v; ]
3 o" o# {' e- Z& r# y
  如果只需要為文章添加自定義字段,可以使用下面這段代碼:
$ R) P5 s7 W5 w; k  a1 j: Y
. O. t- o4 u# R3 m  A以下為引用的內容:2 U4 ~' q5 _5 Y- \% a1 ~

9 Z( ]+ w3 [" k$ v6 K8 {' ?) C4 b: GINSERT INTO wp_postmeta  (post_id, meta_key, meta_value); L8 ~: W( p3 c8 C6 c! N1 f
SELECT ID AS post_id,  'UniversalCustomField'
& P. E5 G! d# s! ?+ ?  m' D/ DAS meta_key 'MyValue AS  meta_value5 A. t2 U; U7 h1 B- j8 ]. @
FROM  wp_posts WHERE ID NOT IN0 S% x/ r7 w) f+ S8 @: H, `
(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')`` AND post_type = 'post';  
( b( r0 Y- \. J4 b5 L
& N! c$ r5 X/ x6 [( \
3 D! c' i, a1 e8 [7 m  如果只需要為頁面添加自定義字段,可以使用下面這段代碼:
6 U. o! W; Y! a/ R$ Y2 k
) X( T3 {; e8 ~% C' O7 [! [以下為引用的內容:4 p" c6 k# w' A+ X

- P* F) u( B* NINSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
) v3 M- ]3 H( n3 }, m) iSELECT ID AS post_id,  'UniversalCustomField': T9 I7 o" }& {9 u( V. V  D( C* V
AS meta_key 'MyValue AS  meta_value; b* V$ s% s, v6 h0 |& c
FROM  wp_posts WHERE ID NOT IN
8 d, T+ Z: x) t. x- T* T3 V(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')AND `post_type` = 'page';
: X) V& Y6 X/ F2 O8 t  a5 t/ ]% A7 k, f- V% s) q3 G% W
1 `7 |# i+ [: E
, i$ C0 p% o# c9 ]8 C, O
  刪除文章meta數據! V+ z/ `8 f7 m

: S. }' h, A) e6 w/ L3 M- m0 p  當你安裝或刪除插件時,系統通過文章meta標籤存儲數據。 插件被刪除後,數據依然會存留在post_meta表中,當然這時你已經不再需要這些數據,完全可以刪除之。 記住在運行查詢前把代碼裡的『YourMetaKey『替換成你需要的相應值。
6 u* a3 w, m* |6 X  _) l
9 a7 B( K( ^0 _以下為引用的內容:- e! B$ q; X6 q, {# x
DELETE FROM  wp_postmeta WHERE meta_key = 'YourMetaKey'; : p: Q: v8 F4 i0 {+ P% l
5 Y0 _5 j+ W. G

4 B) k8 c+ s) s) w0 j7 N  查找無用標籤
) _9 w( O% ]* _+ [6 B6 ~% c- k- i$ \0 q+ B: h5 ]: N. w
  如果你在WordPress數據庫裡執行查詢刪除舊文章,和之前刪除插件時的情況一樣,文章所屬標籤會留在數據庫裡,並且還會出現在標籤列表/標籤雲裡。 下面的查詢可以幫你找出無用的標籤。  T/ c* Q! {& ^. g% `' N
! S3 @: q. y3 Y' ~5 d2 d4 I
以下為引用的內容:
9 O; }* U& r, u/ E# ?* T3 |* J& S' N- }+ @' l+ e) S7 q; ^
SELECT * From wp_terms wtINNER JOIN  wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
+ r- s, W- A8 M  u5 Z4 I, PWHERE wtt.taxonomy='post_tag'  AND wtt.count=0;   B# L" K" X  R1 k

5 P$ j. y# k; O* V$ I7 A3 I1 X! t5 W
  批量刪除垃圾評論) ]+ ], ^2 w+ q( v

% |/ {' O% n3 y) J  執行以下SQL命令:# s, @' F' ]3 o& C$ H: M- ~

7 [2 W, d) |7 i( l2 s以下為引用的內容:: m9 `2 B2 B! d: _4 _  M
DELETE FROM  wp_comments WHERE wp_comments.comment_approved = 'spam';
* a# ]5 o/ E( z  ~" o3 C9 U% @* J3 r0 I

0 z& Z$ o( t  P! G9 Y% w) S: h2 E% V9 k
  批量刪除所有未審核評論
1 f/ D5 x! L4 \: c: F+ Q, K$ [3 \7 a$ A+ ~
  這個SQL查詢會刪除你的網站上所有未審核評論,不影響已審核評論。# ]- N! q9 g* v2 C
# ^$ z$ D* i. V" Z6 i/ C9 l
以下為引用的內容:+ H; u3 [8 ^5 X' B; a
DELETE FROM  wp_comments WHERE comment_approved = 0
; v2 F. X. m/ q8 ?/ j
9 `, [5 f% k$ d1 D# V+ F( O& @! K& k- h( n! V7 r) q
  禁止評論較早文章
2 o/ E% r) J* ?7 y! q- M# _7 J$ v0 `1 d( E
  指定comment_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):
3 M; ?( Q7 Q& r3 a: g; `1 E! G! X+ u- P* D  m  s, l# O% R
以下為引用的內容:
) l& R& p0 `8 \$ uUPDATE wp_posts  SET comment_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';  
5 `! t. P( I7 V8 U& X1 G4 e' Y3 Z3 D" W5 V6 ~- e
) D" f; U% H9 K, U
  停用/激活trackback與pingback% u* j+ L' A, `4 [, v' o7 Z0 m  X
! A5 [; V6 v% _3 ]' v
        指定comment_status的值為open、closed或registered_only。9 o" r" \6 ~6 a, s: }: t0 Z
$ w. y! u1 R6 @- G) s8 x
  向所有用戶激活pingbacks/trackbacks:5 N% M) G4 K8 C2 p! c, }) o6 \6 C0 I
5 L, U9 g$ T( @# K: ?4 ~
以下為引用的內容:
5 G1 E8 l3 E/ c% aUPDATE wp_posts SET ping_status = 'open';
- j4 c  t' j. G- a2 X" F
' J8 }8 \9 S% a! M( z: [' H0 p0 d9 {& D& i& ?( N' v
  向所有用戶禁用pingbacks/trackbacks:
& \* g  I$ ]5 R0 p  J& E7 ?/ K8 z6 {8 V
以下為引用的內容:
+ Q2 o9 C1 @$ \* g: qUPDATE wp_posts SET ping_status = 'closed';  ( ?7 ?/ w$ v6 U, X0 ]# U: T

1 }1 p  z3 r  [: O4 I$ B' m5 V& i* W
  激活/停用某一日期前的Pingbacks & Trackbacks' n  j& b, P  D) `6 P

9 f" m5 x6 \* D2 T* D, M+ c; k2 L  指定ping_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):0 _0 _" N; t& }" j' D, N

5 ]6 A  ^2 n: t! }" w以下為引用的內容:
& i& j8 ]- t  j( @# ^! mUPDATE wp_posts  SET ping_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish'; : ~8 W3 H" E9 X9 q# Y
4 g9 b4 |" C9 V# M. F4 Z
# _+ ~" m0 W- Z" \) B1 C7 B1 u! r
  刪除特定URL的評論6 f1 U8 j. S6 F2 l2 z2 w! T

; f7 P2 A, B% w  當你發現很多垃圾評論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評論。%表示含有「%」符號內字符串的所有URL都將被刪除。
6 M5 ~" z. j% D1 X: ]7 @- u9 y; ~7 u' L& o& X3 g
以下為引用的內容:
) q4 d2 \2 L4 C7 a* R* UDELETE from  wp_comments WHERE comment_author_url LIKE "%nastyspamurl%"  ; ) m. W' B* G& C9 y% _6 G9 Q7 S
1 u0 s) ~! G7 X& S
5 y( @! h8 d/ n  H3 N
  識別並刪除「X」天前的文章
1 H& t8 y9 }; [1 _( T$ B1 d2 @
" Y/ ~1 N/ T& ]$ `- k9 A  查找「X」天前的所有文章(注意把X替換成相應數值):
- _2 f0 E( P1 E- Z' R4 Y6 W( Z
$ z. Y& [/ ]3 D以下為引用的內容:/ \  P% q9 z! s% j' @

* O* b$ C0 b0 Y3 t# k; eSELECT * FROM `wp_posts`- q, h1 O0 {4 l3 j+ A7 V
WHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X  
+ b9 ~3 T! Z% q, c9 l, @1 l8 @3 r
9 r4 |+ D$ T4 ?2 G; t
5 B' G6 r& J7 m" ?* [/ B8 Q! J+ P0 Q  刪除「X」天前的所有文章:
: l' ?6 K& h# y: P# S! ?7 v" C6 J
以下為引用的內容:
% G7 U3 e7 ]  |% h4 }! ~. Q% |' N" y  b" H
DELETE FROM `wp_posts`
2 {2 N: O$ s  J6 X4 ?$ v% vWHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X0 `. s# a- W- z$ n

0 [1 D9 w  n- j- f! E1 z5 b6 }- D/ Q" u+ I: v! k$ D
1 [" J, Q9 P4 r/ t% Z
  刪除不需要的短代碼
1 m) o2 U* R; R. Y
# i8 w1 x3 N: [8 ~# g! v  當你決定不再使用短代碼時,它們不會自動消失。你可以用一個簡單的SQL查詢命令刪除所有不需要的短代碼。 把「tweet」替換成相應短代碼名稱:/ Z' V$ Z' A' W$ i

% C. I7 {' ~( E3 @: ?* A以下為引用的內容:
* L' N+ p: k) xUPDATE wp_post  SET post_content = replace(post_content, '[tweet]', '' )  ; ; o7 ?. y: D4 I2 P

2 C- @& {, `% o' i
; @  `& I7 l: n  Q: e6 I  將文章轉為頁面
( T- B" i' w8 Q0 X! G6 ~' W6 K5 ]+ ?' Q! \: X1 G- k3 K- h7 {
  依然只要通過PHPMyAdmin運行一個SQL查詢就可以搞定:3 s- t7 N1 t" o$ V
1 y# a* n7 w) f! U4 q6 F
以下為引用的內容:
/ p" i& |8 r4 O: i/ rUPDATE wp_posts  SET post_type = 'page' WHERE post_type =  'post'
- r1 U% [% B$ a% A! I" Q7 E- d% ]% n6 j8 Y3 C- Q" z# z
- |# L5 W6 I" L; h; A
  將頁面轉換成文章:1 [9 u, i% c. E* e0 q$ k7 N% J

& p4 W3 l1 C: x( i4 L以下為引用的內容:. H, d; K* G9 a
UPDATE wp_posts  SET post_type = 'post' WHERE post_type =  'page' " R: S& Q1 H. P, ]7 v3 F. D

, q) c, J$ M5 H/ B- b
" ^$ ?6 w# ], I( s( H  更改所有文章上的作者屬性
% n7 ^* [& s1 r
+ f2 {: R/ d& Q2 ]0 r# M  V' p$ J) v  首先通過下面的SQL命令檢索作者的ID:
( b7 `( [$ ~3 m& {9 \! F3 L6 {
+ H8 h6 ]) i, Q% t: g0 S% ?以下為引用的內容:
! e4 ^3 s" q7 X' l) N4 ~! |SELECT ID,  display_name FROM wp_users; 8 M* l. Q( F+ Y* [9 c

* H& `0 l0 |  f& i4 y
$ \# Q2 A1 X( d  成功獲取該作者的新舊ID後,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。
6 S4 N( }& V3 R( M. G9 ?* k
7 ~+ l. @1 w# ]; _7 Q) j+ Z0 a  ?$ I以下為引用的內容:6 h' n* n0 i) w& L* y
UPDATE wp_posts  SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID; ' W2 D1 a& N: [% Q) m4 T
/ ~. {3 }9 |2 q+ _! K- ^

% w% N" w1 h) a# K     批量刪除文章修訂歷史6 `' J+ K% {0 m  u! Z

$ _7 c- |9 [& l; @  文章修訂歷史保存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用SQL查詢給自己節省時間。* F/ m, [. {7 u0 M
8 G% L0 L( q9 V3 Y" J
以下為引用的內容:4 v( U; f; d% P. ?
DELETE FROM  wp_posts WHERE post_type = "revision"; % W0 X# \2 N' e! E1 ]  a

9 o: b* }# S( Z4 h
7 N( D6 }' w: t; W- f1 t  停用/激活所有WordPress插件9 Y' t1 ~& j9 Q: o5 C

5 K, v3 J. d( k+ m! V9 J  激活某個插件後發現無法登錄WordPress管理面板了,試試下面的查詢命令吧,它會立即禁用所有插件,讓你重新登錄。9 M, O. J9 a" W: L0 W( k5 a. d
7 I: C6 m8 ^- s5 n6 a% W+ ]+ v
以下為引用的內容:( l$ ]5 V' i  S, }5 A$ ?" {
UPDATE wp_options  SET option_value = 'a:0:{}' WHERE option_name  = 'active_plugins';
4 }* V. r% `5 C: {, O3 _5 t/ Q3 z
! Q( H/ \! W4 ~0 n+ V1 J3 F
  更改WordPress網站的目標URL
2 Y: m; i9 N& G8 D" k, B! L3 b  O" [
  把WordPressBlog(模板文件、上傳內容&數據庫)從一台服務器移到另一台服務器後,接下來你需要告訴WordPress你的新Blog地址。
8 q% c* ]% P3 i& r/ S
/ Z. ]3 q' [2 t0 Y! h  使用以下命令時,注意將http://www.old-site.com換成你的原URL,http://www.new-site.com換成新URL地址。
% C$ y# Y1 v1 ]. _$ e1 E
7 x9 _% c* ^4 i$ M4 T4 F  首先:7 V7 f3 A  [4 m: j, h% I
' Z( i, m& r! x  g& ]( d
以下為引用的內容:
3 e; q- n7 p5 w$ a* `& `UPDATE wp_options  
9 O5 k  }6 A$ y- |# J  o5 [! {+ {SET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com')
. t7 A0 ~, D6 y$ A6 z5 v4 ?) S& f0 WWHERE option_name  = 'home' OR option_name = 'siteurl'; 9 B6 G; D5 P( A+ }( ~; k- W, E2 i

% E& g4 X* N" B( d
' J$ ?9 e3 t) O  然後利用下面的命令更改wp_posts裡的URL:0 O4 g' L. ]! h3 S* ?6 a
4 m4 @4 _0 @$ X/ u8 T, I
以下為引用的內容:
% c6 L* L  n0 C. C. xUPDATE wp_posts  SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);
" E" D: Q; s5 I( z& u! S) w0 E8 m7 V& T% \8 `" c1 }

2 [' c- {, v8 u4 P2 L  最後,搜索文章內容以確保新URL鏈接與原鏈接沒有弄混:
# N! M+ q  b1 m
2 y. V3 `2 h7 j以下為引用的內容:
+ j- l' S8 x* H! V% s) `+ {UPDATE wp_posts  
1 N; l1 T; z6 L3 t+ A2 OSET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com ');
; O$ @( x, A9 @0 H$ A8 H2 ^  j0 S9 b( `9 V) S2 r

, P$ E- C. Q. D" i% j, [  更改默認用戶名Admin
) A7 I! ~+ Y7 {  d/ K8 D3 W0 o
! s. e8 |$ f" s7 s& l- T# d) v  把其中的YourNewUsername替換成新用戶名。0 q1 }- M/ |, _  v
" Z- n# ^+ A- ?! [
以下為引用的內容:3 ^# Q% W1 o8 S
UPDATE wp_users  SET user_login = 'YourNewUsername' WHERE user_login  = 'Admin';
' |6 F4 K% r% ^6 c
2 z( [4 X3 k& @, N7 O
6 C  _+ f5 [3 v  _- d; \  c& t. D; N  手動重置WordPress密碼
  I" F8 |" D- e6 {9 A1 h
; _2 \8 E: \3 z9 f8 r# w3 S9 m  如果你是你的WordPress網站上的唯一作者,並且你沒有修改默認用戶名, 這時你可以用下面的SQL查詢來重置密碼(把其中的PASSWORD換成新密碼):8 e$ l. Q% F5 M  e# S
/ ?6 L/ V! D7 c0 K% Y
以下為引用的內容:2 Q) E# j" _& J: ?. O2 u; w
UPDATE `wordpress`.`wp_users`  SET `user_pass` = MD5('PASSWORD') # c* L* H1 o) u& g7 R) @( _% K3 J
WHERE `wp_users`.`user_login`  =`admin` LIMIT 1;
  h: k, t1 ]& |  n# C4 C; O8 u
% {5 k) |% u  N- B4 l2 p
8 D6 M' w# \! E" r* V8 w7 R% A  搜索並替換文章內容: m) `8 J5 ]& L7 h1 Q+ \

% _7 |3 H5 @1 Z, C& z  OriginalText換成被替換內容,ReplacedText換成目標內容:
# n! o3 e7 w! I' R- p) g" A. X4 Q% W! S2 E
以下為引用的內容:* [( Z7 v2 i( @. I& W0 Q- y7 y' S
+ w. V! U$ N, z+ t; A
UPDATE wp_posts SET `post_content`
- d: R% p/ P( z1 q= REPLACE (`post_content`,
7 y! P# @( K: @  M: c3 ]6 _'OriginalText','ReplacedText');
; j5 @4 A0 m; ^4 `% O. x) p+ D0 }
' a- V  d$ S# I% [0 G
- a8 t7 P6 P, X$ \( @
! f. V1 e3 e0 I5 B  更改圖片URL
. u8 _. |. a: J+ p* L' J- S; S
8 {2 W5 Q. `  U7 b* J7 [' n$ u% q  下面的SQL命令可以幫你修改圖片路徑:
( A/ n6 n: `  ^
( f) C" p6 ~) h( X4 s2 {* l- d以下為引用的內容:! l- l/ ~$ `& S9 Y% F. Q3 Z
- ?9 g5 v# a- D5 `  S; E0 l" X" q$ V
UPDATE wp_postsSET post_content  = REPLACE (post_content, 'src=」http://www.myoldurl.com',  " V; S( u# M4 P' {, \: Q* _
'src=」http://www.mynewurl.com');
發表於 2011-3-31 17:29:32 | 顯示全部樓層
這個要學習下,也許能用上
回復 给力 爆菊

使用道具 舉報

發表於 2011-4-1 14:42:35 | 顯示全部樓層
到現在也沒完全駕馭wordpress sql數據庫,慚愧
回復 给力 爆菊

使用道具 舉報

發表於 2011-4-1 15:28:39 | 顯示全部樓層
俺從來沒有學過 直接使用呵呵
回復 给力 爆菊

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

过期高净值品牌域名预定抢注

點基跨境 數位編輯創業論壇

GMT+8, 2025-7-11 15:17

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表