过期域名预定抢注

 找回密碼
 免费注册

20個wordpress sql數據庫查詢語句

[複製鏈接]
發表於 2011-3-31 14:20:47 | 顯示全部樓層 |閱讀模式
  WordPress將其所有信息片段(包括文章、頁面、評論、Blog鏈接、插件設置等)存儲在MySQL數據庫中。 雖然WordPress用戶可以通過網站後台編輯控制以上信息片段。 在一定程度上。4 {2 p0 \% J" M! b) N

' V! K" p3 ]8 j0 d5 K  不過假設你的WordPress網站上有成百上千篇文章,而你需要進行全站範圍的改動, 這時從後台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入WordPress的MySQL數據庫執行必要的查詢(改動)。 通過MySQL可以迅速地完成以上任務,為你節省更多時間。" ~7 M1 ]5 ]& W( y4 G
, N$ e: F- J0 u1 H5 [) F! ^" U
  下面要介紹的就是一些省時省力的WordPress SQL查詢方法。
. y- p( u3 Z  N; x" H; y9 ~- O9 K0 x( ^9 g, m4 Q
  事先備份3 e, q. k; z& F6 n& v
. H8 A" j5 b! w  N, o6 x
  WordPress數據庫裡存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。 因此,無論你對自己有多自信,都請記住一定要事先備份WordPress數據庫。 你可以通過備份插件進行備份。3 r8 g5 t( g) g* h3 `) D  z

( c" c- O' @3 n5 U! j  為所有文章和頁面添加自定義字段
$ M& P% c  w* @: e6 x: Z  n* z/ U4 D3 A
  這段代碼可以為WordPress數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的『UniversalCutomField『替換成你需要的文字,然後把『MyValue『改成需要的值。
+ r4 s6 [1 B6 {8 }9 V) N
5 G* \) r# K, }" l8 [以下為引用的內容:% {# q% q1 [6 y5 [+ r

1 r% Y% o! A  @9 w/ f5 tINSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
; W  ]1 s( g) D* xSELECT ID AS post_id,  'UniversalCustomField'
( |4 K  e0 I) j, g3 c) sAS meta_key 'MyValue AS  meta_value FROM wp_postsWHERE ID NOT IN (SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');  
. e( ^# _/ P( m" o" @3 Y& Q- w3 k
0 x0 T! j* l3 n, i: Y
  如果只需要為文章添加自定義字段,可以使用下面這段代碼:
0 Z1 f* H" \8 {7 w4 p
. Q* {9 F' z% w2 _# i以下為引用的內容:
" \) N! k4 O+ P0 @/ {$ f# C' x9 c+ J, Y# m! o( I9 d
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
0 w3 f. R. t/ R' rSELECT ID AS post_id,  'UniversalCustomField'8 K/ N% a/ ?; ?; c
AS meta_key 'MyValue AS  meta_value
7 h# ~: [4 w' y! \( c  g. gFROM  wp_posts WHERE ID NOT IN
1 l+ l$ h0 g4 |. O8 c+ h, G4 x# c& L3 l! M2 U(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')`` AND post_type = 'post';  
, S1 m1 o0 Z5 h3 ~8 c
& q7 e9 @4 ]4 g! f* g3 h0 Y( q3 d6 h% H2 C
  如果只需要為頁面添加自定義字段,可以使用下面這段代碼:
" c; a* E" v1 b9 n" i" K9 R9 z' v
: |4 V, W) I, m% W* S以下為引用的內容:& V2 D/ _* m4 u8 w+ b
: L- v7 g% ^* C. Q" x
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
2 x9 ?- _4 T1 `, e1 nSELECT ID AS post_id,  'UniversalCustomField'" T; _4 W, S  ]8 w  E- ]
AS meta_key 'MyValue AS  meta_value
1 |# J, H4 j3 q* h5 D( gFROM  wp_posts WHERE ID NOT IN
% X4 j  [% C* \. j(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')AND `post_type` = 'page';
" \2 q* ?3 I: t# q7 `
; i5 f7 V) S7 X8 Q/ j3 I
( }' ~. u) Y7 g; u* b) |' R4 A& P) [7 q, T
  刪除文章meta數據
* u  k( q1 t% Y' k' j# w
+ k* Q. W7 d- w6 ]5 U) N3 n  當你安裝或刪除插件時,系統通過文章meta標籤存儲數據。 插件被刪除後,數據依然會存留在post_meta表中,當然這時你已經不再需要這些數據,完全可以刪除之。 記住在運行查詢前把代碼裡的『YourMetaKey『替換成你需要的相應值。
. [( p' O0 N. q& ~8 ^$ j. R' U) i6 C% A+ m) K  r
以下為引用的內容:
& [0 B8 U% D+ Q* E3 x3 tDELETE FROM  wp_postmeta WHERE meta_key = 'YourMetaKey';
1 h$ D, r( ^. X. L/ {- i8 V1 P* B1 t4 l0 l7 }% B
1 W1 S  U2 w: E1 D
  查找無用標籤9 K# Q; j9 x# B' \* l& }1 W# t
9 y: j6 u: I) Q
  如果你在WordPress數據庫裡執行查詢刪除舊文章,和之前刪除插件時的情況一樣,文章所屬標籤會留在數據庫裡,並且還會出現在標籤列表/標籤雲裡。 下面的查詢可以幫你找出無用的標籤。
" ^  b7 x. X" Y! T
) }% o  C$ j* O& j8 [以下為引用的內容:
# h& c( s1 j$ @8 n. d  K# i; q2 D& k9 d3 M0 v6 w9 {/ m9 t, _
SELECT * From wp_terms wtINNER JOIN  wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
, ]. o: h7 u& j7 QWHERE wtt.taxonomy='post_tag'  AND wtt.count=0;
/ k$ _* x: y- `7 G& \9 a$ w5 _7 a, P- r. ]- Q

" y+ R) B  b4 j- r/ W2 f  批量刪除垃圾評論
% R( _; y) W9 B% v+ x, i6 ^( H7 I. O2 g+ v9 N6 d2 g
  執行以下SQL命令:: R) c7 F. ]0 F+ V5 U3 Z
1 W1 s: }& I; u0 u7 p* z6 f' Q( j
以下為引用的內容:
% F' G5 B3 Y: j3 m6 xDELETE FROM  wp_comments WHERE wp_comments.comment_approved = 'spam';: r1 f. y* p. V  j* j  A0 [

+ w1 Y! a. X$ t" P2 @8 W# W6 U0 D- g6 B' o# ~

. `' @+ }; s+ v& I! H3 r  批量刪除所有未審核評論
2 c7 D+ l4 m9 Z+ e4 r2 n; I$ o2 y! n* c
( o' _- ?; a2 U& B$ D9 A# x/ c  這個SQL查詢會刪除你的網站上所有未審核評論,不影響已審核評論。2 ^; l1 U3 k1 N0 a4 c

, }$ j5 r  V' W" r2 R0 m* i/ G0 ^以下為引用的內容:
: o$ v: A+ K4 Q5 U3 g5 d: LDELETE FROM  wp_comments WHERE comment_approved = 0
( g# a  K  _! x, S4 o  p1 h$ R7 |
1 R1 L, v# u* O  w% s
1 Z9 Q3 \' U1 l  禁止評論較早文章, W- ~& f% W/ N  y. O9 C/ Z
- P  c  w( Y$ D7 L) u* R) x
  指定comment_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):
! |7 M/ @4 t$ Q  q! L: U7 a8 P. T! n. L. ^$ L
以下為引用的內容:
; I4 _, h' Y4 J, gUPDATE wp_posts  SET comment_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';  8 ]& M) {  g& ^7 t! \! n9 \& ^
3 s: h, W9 P% p& p4 N& n, v
5 R7 M; t* A# \* D! }, R
  停用/激活trackback與pingback
$ h# R( A% \! a" h  E+ @
$ T" \* `! d; s7 x; T- f- ?        指定comment_status的值為open、closed或registered_only。! J( W& o% [* e$ W+ A% O9 n1 U7 s

* @4 A6 f) U1 d# [  向所有用戶激活pingbacks/trackbacks:
3 |; R: M5 L  [3 m  ]5 e! n/ ]3 C+ J( l  _
以下為引用的內容:/ s8 w  X( Z, P1 b/ Z3 L3 b
UPDATE wp_posts SET ping_status = 'open';
; V( p2 M, |2 G$ [% l5 z9 g+ Y* |3 U9 g7 K' V

; s8 Y! T& p: z$ k; U5 D6 e) c- `/ {1 |  向所有用戶禁用pingbacks/trackbacks:
& B' D+ u2 |; y" E
$ @6 @/ B4 @2 `2 D1 j以下為引用的內容:
, D3 ^& U+ n) x8 K8 `7 GUPDATE wp_posts SET ping_status = 'closed';  
# ?8 {% [! ?5 s4 y( k1 q1 \3 M8 m* @& q. Z4 D8 K% V

5 g- o' B3 J& y2 I0 V& m1 {  激活/停用某一日期前的Pingbacks & Trackbacks
, C0 |  D7 x8 R' q/ J
( r% H' Y4 C8 S* c  指定ping_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):, s5 v( v+ a( q! L# k9 ^

; w$ Z  u8 L+ b" ]0 z7 |以下為引用的內容:& L- p3 p* A4 U1 j7 L- t
UPDATE wp_posts  SET ping_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish'; - s3 Q% c7 Z7 h
! Z8 m9 r6 J7 T2 X' t% r5 }
; }5 f% o( H" n& g. H: [8 j
  刪除特定URL的評論- T; c2 q6 u9 D  m6 q  z$ ^
3 r" C: h  U5 A% A( X
  當你發現很多垃圾評論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評論。%表示含有「%」符號內字符串的所有URL都將被刪除。: C/ V3 j( V/ X7 h2 k- p
6 z9 i6 L/ _: a  e8 ]0 a
以下為引用的內容:
& G& w7 N: K% b/ m& z2 k/ d! CDELETE from  wp_comments WHERE comment_author_url LIKE "%nastyspamurl%"  ; 6 q2 p8 F8 D6 R! Y; a
0 S8 x+ e: c1 e- L
6 l0 _( ]# W/ O! W: D7 n
  識別並刪除「X」天前的文章& |, c& E/ @! J

' m; Q' E0 Z0 n! l8 R( r9 Y  查找「X」天前的所有文章(注意把X替換成相應數值):
- Y- f/ }4 U5 H0 ^- I) c/ L
& m" f0 ]' g% Q以下為引用的內容:: z" S6 I; ?% r) ?
2 F7 |/ E/ y' X# j" w
SELECT * FROM `wp_posts`* i4 T5 ^7 l# M6 Z( U1 b
WHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X  
9 u6 J5 C; y, f) d3 O& {; n- K6 U* F6 f7 ~3 }4 F. [  u

6 J# M+ S" T. {7 m  刪除「X」天前的所有文章:
7 K9 Z) [% |; E+ _0 N5 _- W, u( Y& w" ~8 p/ \) R6 _
以下為引用的內容:% z1 d9 |( n( T3 \6 J0 M

4 V" }0 z% s8 {  z8 H: L! C1 xDELETE FROM `wp_posts`4 q; C+ Y, u  Y
WHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X
  A' k0 d& k0 B9 w
0 j/ C: w4 A; ^2 n' W7 W7 M( F
( c* Z$ w& r4 b. f4 D! H$ Y$ _0 _6 P  ~( s
  刪除不需要的短代碼
5 w( a9 {2 c. k5 F8 K* V& O, N) h5 q* M, G4 l5 U
  當你決定不再使用短代碼時,它們不會自動消失。你可以用一個簡單的SQL查詢命令刪除所有不需要的短代碼。 把「tweet」替換成相應短代碼名稱:, _( C! L: n9 W; `* j* d

% q5 }5 b9 {' D, L- y以下為引用的內容:! @( L( M2 q# g7 T; o! _3 U& s
UPDATE wp_post  SET post_content = replace(post_content, '[tweet]', '' )  ; + ~& C; g6 }. |

- ~' }" S. o- ], f6 k3 _( D+ {. |- f( v  U, j) c
  將文章轉為頁面
9 ^, |. L# Z( i7 \" _8 p7 t: F4 j
4 D1 C; i, R+ m* ?) r3 W8 `+ [  依然只要通過PHPMyAdmin運行一個SQL查詢就可以搞定:2 X6 y% X) ^3 \3 {% }5 T8 T2 A
( n+ H. v5 S- M8 R
以下為引用的內容:
, [& [- g6 {5 C0 h- fUPDATE wp_posts  SET post_type = 'page' WHERE post_type =  'post' , C9 i" W1 t* k4 q( M

) M! S- p& E9 d" }+ A/ m, u
$ T. E% k( l0 S0 o- E- O; m  將頁面轉換成文章:5 A% A9 C  W. o' N! R: Q( F

  C. E1 ^8 G) Q; J) S+ N以下為引用的內容:
0 M: D1 K8 r& u$ K7 |UPDATE wp_posts  SET post_type = 'post' WHERE post_type =  'page' ; H& O* D( n% o/ v3 }$ J% W

8 f$ N$ u8 q# J* p+ n6 k8 l% `% N1 c/ b0 ~+ Z7 e4 S# ?8 n
  更改所有文章上的作者屬性( W6 H1 N4 t/ c
/ p$ F" g: I/ G, r1 c
  首先通過下面的SQL命令檢索作者的ID:
% a4 W! r' L8 T5 r9 m  Y
- k0 H( U- Z6 s) f& |8 f: o$ P以下為引用的內容:  u* ^7 B- t8 o9 ?
SELECT ID,  display_name FROM wp_users;
3 d2 B+ J3 M8 D- W
/ k* v2 y3 t3 @; W8 N6 x- j  f( d# {' P6 `4 k
  成功獲取該作者的新舊ID後,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。  S2 k0 v$ e2 V9 M7 ?( t" L
6 M$ P) _2 w( N! W1 ~
以下為引用的內容:. y4 n7 f4 d1 ?3 Q" z
UPDATE wp_posts  SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID; 3 h/ Q& q. f; z7 o
: u7 J" v( t! J

; b# Z" V" }! |* `9 N/ t     批量刪除文章修訂歷史  @; i; B: I" I$ g, Z  p# b4 m. ~
6 o+ T% [' N! E* t9 \/ X
  文章修訂歷史保存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用SQL查詢給自己節省時間。
3 z+ P  X$ p" A9 q6 Z1 c& k. |
( ~) K0 H. e' b, y9 l* D7 W2 k以下為引用的內容:
/ K1 v  I2 k; |0 C& T9 fDELETE FROM  wp_posts WHERE post_type = "revision";
8 j6 Z: M. C! J0 g7 i  ]8 |* C3 |$ N1 u
2 C1 j6 E  m- k8 [, q
  停用/激活所有WordPress插件
  N% {' Z8 A7 D2 V/ t& S$ h: r5 g0 u7 }& N: ^  L
  激活某個插件後發現無法登錄WordPress管理面板了,試試下面的查詢命令吧,它會立即禁用所有插件,讓你重新登錄。* l* e* B6 n8 s; A: _
3 s. P" [8 _! W3 B% W
以下為引用的內容:1 }: T/ k% i. j# s* w) R* F
UPDATE wp_options  SET option_value = 'a:0:{}' WHERE option_name  = 'active_plugins';
4 `+ Z$ y, d' |7 E1 U/ L; \& k& u/ e7 Y6 n) v4 e
* G1 Z1 t( q+ X5 Q* m
  更改WordPress網站的目標URL
: }4 w( c& M8 y. p" d8 x9 }* ]$ n
  把WordPressBlog(模板文件、上傳內容&數據庫)從一台服務器移到另一台服務器後,接下來你需要告訴WordPress你的新Blog地址。) v9 y& ~/ @; W( q/ D2 u5 B- w

# g* S4 o/ w# U  使用以下命令時,注意將http://www.old-site.com換成你的原URL,http://www.new-site.com換成新URL地址。% X0 {, S# C1 \8 d, }

) Y8 q/ g( m* k0 K5 r4 u5 r  首先:% ~7 p1 S3 R. ?

+ D- ]( T- O6 V3 P( g, w" Q# q以下為引用的內容:5 W/ C) n. r- A! c. U  K
UPDATE wp_options  6 C8 D  T& ]3 A! f: p6 Q/ ?7 G
SET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com')
1 e1 R( k: _) Y+ F/ Q! j; f9 ]/ EWHERE option_name  = 'home' OR option_name = 'siteurl';
0 V8 ]& Q8 L0 g& g5 ?& I/ r8 ^; I* j9 f  k6 X9 X
3 A& A) w$ ~2 A8 F2 y0 F$ h' H5 Q
  然後利用下面的命令更改wp_posts裡的URL:9 M! y* s( B; s" U1 ^% c% ^' D4 k

8 K% Y9 `7 F, Y- U以下為引用的內容:% }2 r4 W! @3 x5 i
UPDATE wp_posts  SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com); + Z; B  \7 ]3 w% D

9 I# D. X. `8 K3 A' r9 {
4 r/ a1 B  ?' N1 |  最後,搜索文章內容以確保新URL鏈接與原鏈接沒有弄混:  b  `$ u% A- q7 s6 `7 E" p& b* `3 Z
. b" u" a! S: @* Y, N% c/ b) T, `1 ^
以下為引用的內容:4 t. {0 @0 r; M2 _) `
UPDATE wp_posts  
# K! y% z# d& e5 g! V9 E$ f1 r5 ySET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com '); + T0 Y# V1 b& j& x) M- N: p
+ C) G+ D. X$ `

& c. u, A, H1 p; [2 E- ]* D# p  更改默認用戶名Admin
; s, l7 O/ b" h) Q
7 Q# p0 n! c+ h; p4 \! h/ p  把其中的YourNewUsername替換成新用戶名。4 D( c9 {% d0 m  l! y  o* q

8 O2 u$ _  g- ^# ]以下為引用的內容:3 `3 O; |# z# X7 Q
UPDATE wp_users  SET user_login = 'YourNewUsername' WHERE user_login  = 'Admin';
* y# U  U- G2 R. Q6 m
) [0 u; K" f$ @. @. k& h0 T5 V" d/ j: p9 ^0 R9 M
  手動重置WordPress密碼
: p8 o) H7 R* n
3 g- Y; b* ]. e. I/ l  如果你是你的WordPress網站上的唯一作者,並且你沒有修改默認用戶名, 這時你可以用下面的SQL查詢來重置密碼(把其中的PASSWORD換成新密碼):
/ x6 f* T' I# U+ Y5 _/ }, l+ d6 \8 F7 a* z$ r
以下為引用的內容:. c2 E, A( ^! |# R) p
UPDATE `wordpress`.`wp_users`  SET `user_pass` = MD5('PASSWORD') % ^* m2 {0 g' F' T* J
WHERE `wp_users`.`user_login`  =`admin` LIMIT 1;
9 r* R9 S: K; I, j. h! l) B5 _2 d. ~( `" F% J

. m2 ~9 R( Z3 U; W- G8 V. i  搜索並替換文章內容
7 J* F! ?2 c* G0 P$ o* \1 c2 I
$ O4 S4 m9 \: d$ C, z$ M5 V  OriginalText換成被替換內容,ReplacedText換成目標內容:/ S8 p1 |  B& w5 P( k
+ J6 L, O/ q5 x  S# I
以下為引用的內容:
- j& j8 w1 `; P" E  X; h/ m8 F) n3 g  u7 G7 x
UPDATE wp_posts SET `post_content`( g0 N/ S' K' r( u% m& `& O( A5 D
= REPLACE (`post_content`,( L( H+ z- n6 \0 T: L1 h& w* n
'OriginalText','ReplacedText');
4 y9 S) H6 }+ j+ X4 `. B
, o9 s0 d2 G0 `$ P: D- j7 R& z$ v* Z, i8 F
3 s& N, L6 |+ X& p$ s1 k: K# d8 v
  更改圖片URL4 F) S4 M5 a" s+ \+ o- B
# V! a0 T" A  m  v4 B1 d4 @/ r
  下面的SQL命令可以幫你修改圖片路徑:3 ~* Y' e  t' ]/ G- u
0 n9 u! o, \3 y, g: F
以下為引用的內容:+ v' O8 u1 t* ^2 F

2 E% ^/ d8 }. o6 ^: xUPDATE wp_postsSET post_content  = REPLACE (post_content, 'src=」http://www.myoldurl.com',  
) l' C* e; O& M) y6 k4 n'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, 2026-8-5 11:14

By DZ X3.5

小黑屋

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