过期域名预定抢注

 找回密碼
 免费注册

20個wordpress sql數據庫查詢語句

[複製鏈接]
發表於 2011-3-31 14:20:47 | 顯示全部樓層 |閱讀模式
  WordPress將其所有信息片段(包括文章、頁面、評論、Blog鏈接、插件設置等)存儲在MySQL數據庫中。 雖然WordPress用戶可以通過網站後台編輯控制以上信息片段。 在一定程度上。
6 l  {, v: B  Y/ x4 F" [# N1 T: J7 K6 s# q
  不過假設你的WordPress網站上有成百上千篇文章,而你需要進行全站範圍的改動, 這時從後台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入WordPress的MySQL數據庫執行必要的查詢(改動)。 通過MySQL可以迅速地完成以上任務,為你節省更多時間。
& c' ^6 T6 G3 C3 l9 l8 V/ K
# @, `0 M2 m# s' t# ~6 I  下面要介紹的就是一些省時省力的WordPress SQL查詢方法。0 m. h" `5 G$ m; U2 v% B8 z; O% E' `9 ]
, d6 z6 s6 Q) n4 B+ y
  事先備份4 @) C# i. p8 x% N
3 r0 k9 M4 O8 I- l, T
  WordPress數據庫裡存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。 因此,無論你對自己有多自信,都請記住一定要事先備份WordPress數據庫。 你可以通過備份插件進行備份。  I3 T1 Z4 b1 N! Z5 U$ Z* r
4 G4 Q. {" T: ^. |; C9 f
  為所有文章和頁面添加自定義字段
5 U$ C  m0 e9 G9 w7 }9 U- Q$ F2 C6 n& Z" A0 b9 K! \6 Y0 o9 u, p% o
  這段代碼可以為WordPress數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的『UniversalCutomField『替換成你需要的文字,然後把『MyValue『改成需要的值。' n; ^: D3 w  I9 y: w0 |
7 l) _) z! O# u* F+ f
以下為引用的內容:, E; [% L; K% g+ L' O1 f- ?1 z
  h9 c* S6 ~. Q% N6 A) Y! J# c
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
" o; _; F( k3 I+ [8 ESELECT ID AS post_id,  'UniversalCustomField'
2 K1 L1 F, w' {# G, z$ dAS meta_key 'MyValue AS  meta_value FROM wp_postsWHERE ID NOT IN (SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');  
: U0 K+ p9 d5 {' G2 x! B
+ \- u4 m3 t( x! N  {/ L0 ^2 E. o; G; b; S
  如果只需要為文章添加自定義字段,可以使用下面這段代碼:
( e2 f( R9 |, n6 E/ o; P$ E7 _- T5 y8 p! R" r9 r/ ^: g
以下為引用的內容:5 k2 ?! H' h' X5 k
' D5 k- g$ L& c4 u: i$ x  L
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)! v4 @6 W; t+ g1 T# b/ Q. c
SELECT ID AS post_id,  'UniversalCustomField'$ w9 O( a  V0 }; \* g8 S
AS meta_key 'MyValue AS  meta_value
& K, `' d/ Z5 n& |FROM  wp_posts WHERE ID NOT IN
8 Y, ?# i0 B' S5 b1 v) o8 J(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')`` AND post_type = 'post';  , U/ ^# m0 V' M
1 {% A( |7 q+ @" i( j$ H

2 l9 P6 W" }1 m! G  如果只需要為頁面添加自定義字段,可以使用下面這段代碼:* Y( w0 I6 K2 g. j

+ b! w6 A7 p2 R$ O/ [+ a1 L) I以下為引用的內容:" O- V, c/ Q0 W2 E, I: s7 e) H

5 S7 k! \# X$ A8 O- ~INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)6 C6 x5 P1 {5 J! J
SELECT ID AS post_id,  'UniversalCustomField'8 ~+ P2 ~+ {- G( c8 }4 D6 n# M
AS meta_key 'MyValue AS  meta_value% Y  \: A/ ~! x1 D# J
FROM  wp_posts WHERE ID NOT IN1 F) |, c& ^3 q9 D
(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')AND `post_type` = 'page';2 Q9 z/ P7 @2 w& h
3 N6 ]! g1 T# O6 e) |
' ~& d0 |0 I$ H- l) Z* H% }3 _

/ o9 P/ t) E& q8 l- n& L  刪除文章meta數據
) M) ~! W& F% N4 G3 O" J& n+ k
' I7 ^5 E! w& b4 ~$ \  當你安裝或刪除插件時,系統通過文章meta標籤存儲數據。 插件被刪除後,數據依然會存留在post_meta表中,當然這時你已經不再需要這些數據,完全可以刪除之。 記住在運行查詢前把代碼裡的『YourMetaKey『替換成你需要的相應值。
4 ]: u; ], @# W" j
- E/ g4 P; c( P. }2 v+ o9 j+ E, f' U以下為引用的內容:5 d; f: L# X& C1 G" S, a
DELETE FROM  wp_postmeta WHERE meta_key = 'YourMetaKey'; 6 Z7 c" t. M! \' x) C& [- @
3 C9 w6 L$ x/ ~6 g! U5 D

$ |# T. _* R2 ]0 `! u! Q, G  查找無用標籤6 Y' x8 W! O/ w8 C
; u' j7 U" C; m: C% V
  如果你在WordPress數據庫裡執行查詢刪除舊文章,和之前刪除插件時的情況一樣,文章所屬標籤會留在數據庫裡,並且還會出現在標籤列表/標籤雲裡。 下面的查詢可以幫你找出無用的標籤。" D/ A0 L  G' ]! [8 Y# k2 j
7 ]8 ^+ i& _! O" q; T
以下為引用的內容:
# _! g8 Z# e; \. ~- Q$ g1 l. S: W& G/ D4 y: }$ m
SELECT * From wp_terms wtINNER JOIN  wp_term_taxonomy wtt ON wt.term_id=wtt.term_id ; o; E' v" [' [6 R
WHERE wtt.taxonomy='post_tag'  AND wtt.count=0;
6 L" D% y. o& d* E; S, E0 `3 t
) f1 F+ O: u" L$ l3 ?1 r0 U# A( x3 E, @
  批量刪除垃圾評論
, l% O, K! [& Y4 _# A
/ k2 g6 d3 J% s+ h. D  執行以下SQL命令:
9 h3 [/ R0 b! Q! J3 o9 @( K: F
4 E7 `/ B! o4 o9 }7 M1 D$ O0 t3 F以下為引用的內容:0 P3 d& ^% D+ k0 O
DELETE FROM  wp_comments WHERE wp_comments.comment_approved = 'spam';- ?/ [0 k" W" l5 L

) }# ?7 F% T, k4 h5 a7 C2 g3 c1 O7 s" W( A- ?
& t4 i2 s9 i. w: @( m) M- g
  批量刪除所有未審核評論
3 {9 e/ c9 e: o7 h. {4 Y7 |, X0 @: {( `
  這個SQL查詢會刪除你的網站上所有未審核評論,不影響已審核評論。  O) ?; ?0 L, h  g* I
; I/ T6 f% U! K) y5 F
以下為引用的內容:
5 K3 ^4 [3 \/ r- S1 z' O. ^+ B  WDELETE FROM  wp_comments WHERE comment_approved = 0 . F" ~) m9 S: F3 s' S' u

( U2 l2 K/ o4 z* [5 m- `) d! h' N  c2 `! Q8 Y
  禁止評論較早文章
! K* a4 o- a8 Z% i/ H8 @* [
9 T) _: w4 f: }' I! d# q  指定comment_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):8 M  v" m" u7 M) W  x3 i
. j5 v& G* b# p
以下為引用的內容:6 W8 ]5 w0 u! \& H0 g+ ^1 t
UPDATE wp_posts  SET comment_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';  ! N7 o! w5 F* M. q  S
/ p. s8 {: g! `4 ~6 M- V8 @

: Y2 k% G; I) G1 t" k  停用/激活trackback與pingback! k' g  o! w2 d- E: R

. z) X4 L8 P* {  y8 H( p        指定comment_status的值為open、closed或registered_only。
% K" w3 H; c; s. X, s) I3 s  O8 _6 H7 @
  向所有用戶激活pingbacks/trackbacks:) ~& T- Q5 a0 y) D2 s$ q& _9 `

5 a  H* m" d1 F) o: |& p以下為引用的內容:
  _0 N: E- |- \UPDATE wp_posts SET ping_status = 'open'; # r! h3 G3 h+ Z

) C5 o" |7 {2 w/ m) |! d- U1 ]; ?. [; ?
  向所有用戶禁用pingbacks/trackbacks:- G5 t: V" }, T$ Q
3 r  t  j; o1 y/ J/ q
以下為引用的內容:
; G" O" R4 U- z2 dUPDATE wp_posts SET ping_status = 'closed';  % |4 C% @0 V  B6 J3 E/ K/ j

$ t$ D6 ?( o" _6 k5 z/ P6 n
0 m7 c8 e3 V! N: h  h0 }* ?4 t  激活/停用某一日期前的Pingbacks & Trackbacks9 Y+ l$ r3 d# c

7 t' M. ]& A. a+ v# L  指定ping_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):( K1 k9 O3 B4 [$ o1 t* `; x2 }

7 r1 B8 p. S/ ]; L% n" R, A6 Y& d以下為引用的內容:" R" A* A6 o6 v
UPDATE wp_posts  SET ping_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';
% D! E* }% y  f4 `
2 d1 P5 W6 n( f" j. i# W0 C  ?/ S9 V4 D- N) d: `5 s, k
  刪除特定URL的評論
5 }1 l6 ]$ W6 t$ j0 b9 l1 R! T
: h' a4 T7 _1 f3 B& v7 e( ?  當你發現很多垃圾評論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評論。%表示含有「%」符號內字符串的所有URL都將被刪除。
/ [4 ?- r9 j, F' X$ e) U3 _2 }5 m7 a8 W8 U7 G
以下為引用的內容:% h$ H5 t$ X, x# E6 i
DELETE from  wp_comments WHERE comment_author_url LIKE "%nastyspamurl%"  ;
) B& w9 f, @4 Q, W" G4 x7 r: M/ f7 I$ ]$ E9 s; u4 I  R

0 Z( m" j! U; Z  Z( `  識別並刪除「X」天前的文章. _9 i( N7 R' a! I1 ?" C
2 i# ~3 y6 W" Z$ V) Q
  查找「X」天前的所有文章(注意把X替換成相應數值):! f0 W" e( [8 ]. a
# h- }6 ]4 p2 \; _& J3 l
以下為引用的內容:& U% c6 X" f( w8 e  q# E/ d! n
1 p9 z. T  \0 r  ^" f* c* S+ M7 V
SELECT * FROM `wp_posts`; V. O# ~7 @/ b9 W2 C
WHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X  
" X$ U! L3 w3 v8 f7 H. p" E2 N. `9 |

& Q# x! g. q8 Y' z  刪除「X」天前的所有文章:
+ t0 E3 I3 B0 X! {& n$ O5 x# d% h/ [# Y6 k
以下為引用的內容:
  o4 [  j* I  G. a; f6 b
$ O; r) n; I+ Q7 VDELETE FROM `wp_posts`
9 T+ g) @3 \! I6 i# uWHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X
. A3 m1 _8 r4 k6 ~+ w
3 I5 D8 Q8 t3 x4 b( b, [0 m: G/ V3 v. x- n

2 T  x( k; l7 {: Y! t  刪除不需要的短代碼
6 s9 \8 s. A1 o9 \( v, q( v7 s; F
% ~. t3 M( B6 s# i# _  當你決定不再使用短代碼時,它們不會自動消失。你可以用一個簡單的SQL查詢命令刪除所有不需要的短代碼。 把「tweet」替換成相應短代碼名稱:
& N: t4 w) h$ ]9 w" x1 S4 s9 w2 K* |, f! _5 i: `( M
以下為引用的內容:; g4 Q( `7 u9 u  k2 p, B# g
UPDATE wp_post  SET post_content = replace(post_content, '[tweet]', '' )  ;
( M6 A- r5 U: [) ^6 @, w+ w& j9 N% H' a5 e
1 w' N! a" P! N
  將文章轉為頁面& _/ f2 ]2 n; G0 u
1 W$ C, E* g/ {+ _
  依然只要通過PHPMyAdmin運行一個SQL查詢就可以搞定:5 l0 ^! K2 K$ v1 r6 ]: U9 r2 `: l

* m6 M% Q" m  l, o8 x% E; y/ X7 H* i以下為引用的內容:9 i5 X9 g  e7 T+ ]* [% \
UPDATE wp_posts  SET post_type = 'page' WHERE post_type =  'post'
1 J& f) W( z. U3 z: O) m
+ c- b; o7 L% [
! h  g* L; X% ~, L  將頁面轉換成文章:5 y9 N2 P, m5 H; l! G9 _+ `
- h7 _! u4 d1 N  B
以下為引用的內容:
/ Y% X+ Z- N# L( S* ~1 WUPDATE wp_posts  SET post_type = 'post' WHERE post_type =  'page'
1 N/ K+ q9 K4 ^0 B3 X; r3 [
+ u( a- Q2 c5 ~: q; |% C2 T/ }" b( x% N
  更改所有文章上的作者屬性/ n& w  E; R! j* A: E9 S2 o3 H

- {( \: R: q0 t& B! _  首先通過下面的SQL命令檢索作者的ID:
* q( A7 O4 K& q7 P$ |/ @* a  u& X: ^6 y3 _, f* z2 W
以下為引用的內容:5 H7 B' p# b2 A5 W" Y' Q' e) l9 y
SELECT ID,  display_name FROM wp_users;
" e: M) f6 o/ W# }& f% Q* g, \' n0 e) p$ G
$ W4 M) Z* B9 P
  成功獲取該作者的新舊ID後,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。
5 B! m" @) M" ^- }9 ?+ |6 ?4 C" F: z
以下為引用的內容:
& U- U; G  Y0 c9 a0 G1 tUPDATE wp_posts  SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID; - \7 w) o; a3 s* X' {" V( e/ q

. A( f1 p: \, C& Q9 u% P4 E9 M+ B& U  Z) E8 A% ?/ |' X
     批量刪除文章修訂歷史
, S# q8 t6 R+ S; R7 y# ]; L- {+ a/ ~! s
  文章修訂歷史保存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用SQL查詢給自己節省時間。9 z1 D# Z+ [% g/ Q8 }" G2 C, I
) ?' h+ V) |9 \
以下為引用的內容:
8 N% {1 @/ K* HDELETE FROM  wp_posts WHERE post_type = "revision"; + k& j$ q8 s+ [

) M- o, T; {; g  j  F, M& H1 _' x( H0 u4 ~; x+ ]( `+ z
  停用/激活所有WordPress插件
) Z7 K# m1 H6 r5 f+ t2 I( B
2 R/ f1 r- s- j0 d/ E) w% O  i" U  激活某個插件後發現無法登錄WordPress管理面板了,試試下面的查詢命令吧,它會立即禁用所有插件,讓你重新登錄。
# A! H4 y. ^, Q6 Z3 M. n# O$ z
% U7 [  O; v7 ^* ^3 n以下為引用的內容:: S7 h+ r  X7 T) z* [
UPDATE wp_options  SET option_value = 'a:0:{}' WHERE option_name  = 'active_plugins'; 9 i4 p& P& l: R* ^& D! U

: K5 D; }9 D( ]" s4 p% I1 b
1 g) ~2 |( |9 e) t2 J$ I  更改WordPress網站的目標URL& a; J4 ~1 X3 {$ H( W

2 x! r: K! J" |: w$ N4 f2 I  把WordPressBlog(模板文件、上傳內容&數據庫)從一台服務器移到另一台服務器後,接下來你需要告訴WordPress你的新Blog地址。
) G* T, e1 G$ e( F/ m" p, E9 H. i6 k7 C+ x: K
  使用以下命令時,注意將http://www.old-site.com換成你的原URL,http://www.new-site.com換成新URL地址。/ t+ Y7 ^0 }1 \! {6 }$ p
* r1 S) T8 L$ Z- C4 `( l
  首先:
/ |+ Q6 m* b# J4 D0 w2 \
' l. R( t5 C7 ]+ k) q( T以下為引用的內容:) C+ F/ B3 z0 W% ?' L: g
UPDATE wp_options  # l$ C5 ~2 C; x0 N- `% z) N
SET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com')
2 Z1 f- N- b; j' o, W0 f7 bWHERE option_name  = 'home' OR option_name = 'siteurl'; * ]. j/ }3 l4 j7 [7 {8 \# G  G
- R3 X8 o! \, o  `" g" `
2 r# E) D; X* n5 B8 o" r
  然後利用下面的命令更改wp_posts裡的URL:7 P) A1 v5 y& x. X: ^/ r' t" g

, G7 s: }: O, ^) p( {以下為引用的內容:' p5 X: Q, z" x
UPDATE wp_posts  SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com); 5 O6 c% u+ x& y4 s

6 r! g$ t( s, }3 J: }! @1 X/ M- l2 t
  最後,搜索文章內容以確保新URL鏈接與原鏈接沒有弄混:0 j7 e, @* N/ O. K6 y  m! z

8 P# I3 c7 a1 o0 \. u3 c以下為引用的內容:
7 N% [/ |6 m7 k2 {; a, `8 gUPDATE wp_posts  5 ]( }: Y8 m( p! P" q
SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com ');
$ K+ ^2 D. ]: l5 U, w
3 Y3 E& N, L5 J0 @' Z
7 I, w1 D1 S: q0 ^3 l$ A) U. l  更改默認用戶名Admin
4 x  R- U! z; {! R% {/ Y4 ^' f! r8 A. `6 K
  把其中的YourNewUsername替換成新用戶名。
9 g0 `: v. A" w9 X$ R: b/ {
9 X0 T3 q0 S; k8 B# c以下為引用的內容:
1 y1 m+ K$ @2 E+ cUPDATE wp_users  SET user_login = 'YourNewUsername' WHERE user_login  = 'Admin';
7 P+ a% ^2 a# s- w* w
( i& H1 l. e% a5 {5 h
2 t, {: Y; b2 N' m6 T  手動重置WordPress密碼; P, |* C. T# J5 k& {% G
! Q: e6 s* D# N1 I
  如果你是你的WordPress網站上的唯一作者,並且你沒有修改默認用戶名, 這時你可以用下面的SQL查詢來重置密碼(把其中的PASSWORD換成新密碼):
, f8 p9 L5 Q0 w. L) r0 U8 w: b6 X1 p* b# c/ V. i. j" a; I1 j- R
以下為引用的內容:
* v/ }% l* X' ?( _6 U/ \$ G- pUPDATE `wordpress`.`wp_users`  SET `user_pass` = MD5('PASSWORD') 8 b6 y/ R* e+ T3 ]
WHERE `wp_users`.`user_login`  =`admin` LIMIT 1; 3 |- P" }0 `' a& @' ~& \

& I. e6 w4 W6 K  {0 c
/ t& [; N0 C  F5 q  搜索並替換文章內容- Q2 j  ^) J, I" K
: O6 N% Q+ Z) e9 o- T  q. X
  OriginalText換成被替換內容,ReplacedText換成目標內容:& G: P! B) q, P, o. r2 G8 |

7 |) r4 O8 x- x/ Y) D以下為引用的內容:
4 b. J* {; K8 \3 C
6 ~5 o* _7 [' KUPDATE wp_posts SET `post_content`7 f5 L3 h, I% X  @
= REPLACE (`post_content`,
8 C/ p  P0 G; w% u) H'OriginalText','ReplacedText');0 ~6 w" j; F" K) H5 F0 n* R
$ W! J* p$ @& |* e3 k4 O/ z0 [! f

0 t7 m' B/ N6 v" V0 Y9 L$ g0 i$ }  `5 W+ c
  更改圖片URL. ^& Y1 H2 @* O" y  E! A+ ^

& H$ d: L& k$ K: Y* m8 W' B  下面的SQL命令可以幫你修改圖片路徑:
& U  _: @* t' a' h& n5 _$ A. D/ N4 h+ R% W. \8 C* ^: C3 @2 h
以下為引用的內容:) F4 Q7 A( z- V
. w6 \# q( i8 j/ t/ v" o7 `
UPDATE wp_postsSET post_content  = REPLACE (post_content, 'src=」http://www.myoldurl.com',  
' a4 |1 ]( z, U) h& I'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-12-11 18:47

By DZ X3.5

小黑屋

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