WordPress のデータベースをいじるのに便利なこと8つ

8 Useful WordPress SQL Hacks | How-To | Smashing Magazine

という記事を見つけたので、ちょいとメモ代わりに訳してみた。トイレの中で。

*ここから

MySQLはとっても人気があるデータベースです。WordPressも投稿や設定やコメントなど、MySQLデータベースに入れてます。

いろんなプラグインとかで、解決できたりするけど、phpMyAdminを使ったり、SSHを使ったりで、SQLコマンドをバシッと実行させないとダメなときもありますね。

というわけで、8こ、便利なことをまとめましたので、ありがたく思えでございます。

1つ目【データベースのバックアップを取ろう】

いろいろ手を出す前に、バックアップを取っておかないと、とんでもないことになるよ。

  1. phpMyAdminに入って、WPのデータベースを選ぶ
  2. エクスポートってところとクリック。
  3. 圧縮形式を選んで(僕はgzipだよ)、実行ボタン
  4. ブラウザが丁寧にダウンロードするか聞いてくるから、素直に「はい」と答えて、保存場所を選ぶ

先に言えって話だけど、WP-DB-Backupってプラグインがあるから、それ使った方が楽だよ。入れとけ。

2つ目【一発で投稿の履歴を消す!】

2.6から投稿の履歴が残って便利だけど、ディスク容量を食うよ。で、チマチマ消していっても良いんだけど、日が暮れちゃう。

  1.  phpMyAdminに入って、WPのデータベースを選ぶ
  2. SQLボタンを押して、SQLコマンド「DELETE FROM wp_posts WHERE post_type = “revision”;」を入れる
  3. 投稿記事の多少によって、時間が違うけど、とりあえず履歴は消され、たぶん半分ぐらいの容量になるんじゃないかなと

3つ目【5000のスパムコメントをすぐに消す!】

これは俺の友だちの話なんだが、WPでブログを始めて、いろんなとこに宣伝しまくった。そして優雅に休暇をとって、家に帰ってきたら、5000以上の承認待ちコメントがあった! ブログが素晴らしくて、みんなコメントくれたんだと思ったら、ほとんどがスパムだった……。もうブログなんてやらない!

そんなときはこの方法で

  1. phpMyAdminに入って、WPのデータベースを選ぶ
  2. SQLボタンを押して、「DELETE from wp_comments WHERE comment_approved = ‘0’;」ってSQLコマンドを実行
  3. 悪い奴らは消えた

承認済みコメントは「1」、未承認は「0」ですよ。なので、大切なコメントは承認してから、このコマンドを実行してくださいね。
あと、取り急ぎAkismetは使っておきな。

4つ目【投稿の帰属を変える】

adminってアカウントで、WP作って、そのまま投稿すると、adminさんの投稿になる。個人的な名前を使いたかったのに!という場合。一つ一つ変更していくのは面倒。

  1. ユーザーIDを知る必要があるので、 SQLウィンドウを開いて「SELECT ID, display_name FROM wp_users;」というSQLコマンドを実行
  2. ユーザーのリストが表示されるので、IDを確認。以下、新しいユーザーを「NEW_AUTHOR_ID」で、adminを「OLD_AUTHOR_ID」と置き換えて読んでね。
  3. 「UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;  」というコマンドを実行。

そうすると、adminの書いたことになってた記事が、別のユーザーの記事に移るはず。

やっと5つ目【パスワードを手動でリセット!】

キャッシュカードと同じく、ブログを守るために、パスワードを誕生日以外に設定するのは賢いけど、忘れちゃったりするよね。

  1.  SQLウィンドウを開いて、あなたがadminだとしたら、「
  2. UPDATE `wp_users` SET `user_pass` = MD5(‘PASSWORD’WHERE `wp_users`.`user_login` =`admin` LIMIT 1;  」と。
  3. PASSWORDってとこに入れたパスワードに変わる

6つ目【ワードプレスのドメイン名を変える】

ドメイン名を変えるのはオススメしないけど、やんごとなき事情があるよね。

  1.  SQLウィンドウを開いて、まずWPのURLを変えるために、元記事のとこのコマンドを入れる
  2. で、相対的URLを置き換えるコマンドを。これも元記事参照して
  3. もうほとんど終わり。で、絶対的URLがないか、チェックするコマンドを入れる

そうすれば、新しいURLのダッシュボードに入れます。

7つ目【ブログにSQLクエリの数を表示する】

ブログの読み込み時間をよくするには、クエリの数を知っておくのが大切。クエリを減らすには、ページにどんだけクエリが作られるのか、知りましょう。

  1. phpMyAdminに入らず! footer.phpにコードを書きましょう。 コードは元記事へ参照。
  2. で、ブログを見ると、クエリの数と、作るのにかかった時間が表示されてます。

ログインしたユーザーにしか表示されません。他の人やロボットが知る必要ないからね。

最後、8つ目【データベースを元の状態に戻す】

ちゃんとバックアップファイルを取ってあることが前提で、

  1. phpMyAdminに入って
  2. 「インポート」ボタンをクリック
  3. 「ブラウズ」で、バックアップしたファイルを探して、実行。

以上。

*ここまで

出てくるコマンド内で、「wp_ 」とあるとことは、テーブルの接頭辞だと思うので、接頭辞を変えている場合は、適宜変更。

ロリポのphpMyAdminを改めて見てみたら、インポートができない/エクスポートのときに圧縮形式が選べない  という感じでした。またよく見てみますが。

元記事のコメントには

俺はバックアップはcronにやらせてるぜ

検索置換のプラグインがあるぜ

phpMyAdminのバックアップより、MySQLから直でバックアップ取った方がいいぜ

define('WP_POST_REVISIONS', 3);とconfigファイルに書いておくと、履歴の数がコントロールできるぜ

メタデータまで消せないから、

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

とやるといいぜ

といった、自慢が書かれています。いろいろ知ってますねえ、みなさん。

コメントを残す