8 Useful WordPress SQL Hacks | How-To | Smashing Magazine
という記事を見つけたので、ちょいとメモ代わりに訳してみた。トイレの中で。
*ここから
MySQLはとっても人気があるデータベースです。WordPressも投稿や設定やコメントなど、MySQLデータベースに入れてます。
いろんなプラグインとかで、解決できたりするけど、phpMyAdminを使ったり、SSHを使ったりで、SQLコマンドをバシッと実行させないとダメなときもありますね。
というわけで、8こ、便利なことをまとめましたので、ありがたく思えでございます。
1つ目【データベースのバックアップを取ろう】
いろいろ手を出す前に、バックアップを取っておかないと、とんでもないことになるよ。
- phpMyAdminに入って、WPのデータベースを選ぶ
- エクスポートってところとクリック。
- 圧縮形式を選んで(僕はgzipだよ)、実行ボタン
- ブラウザが丁寧にダウンロードするか聞いてくるから、素直に「はい」と答えて、保存場所を選ぶ
先に言えって話だけど、WP-DB-Backupってプラグインがあるから、それ使った方が楽だよ。入れとけ。
2つ目【一発で投稿の履歴を消す!】
2.6から投稿の履歴が残って便利だけど、ディスク容量を食うよ。で、チマチマ消していっても良いんだけど、日が暮れちゃう。
- phpMyAdminに入って、WPのデータベースを選ぶ
- SQLボタンを押して、SQLコマンド「DELETE FROM wp_posts WHERE post_type = “revision”;」を入れる
- 投稿記事の多少によって、時間が違うけど、とりあえず履歴は消され、たぶん半分ぐらいの容量になるんじゃないかなと
3つ目【5000のスパムコメントをすぐに消す!】
これは俺の友だちの話なんだが、WPでブログを始めて、いろんなとこに宣伝しまくった。そして優雅に休暇をとって、家に帰ってきたら、5000以上の承認待ちコメントがあった! ブログが素晴らしくて、みんなコメントくれたんだと思ったら、ほとんどがスパムだった……。もうブログなんてやらない!
そんなときはこの方法で
- phpMyAdminに入って、WPのデータベースを選ぶ
- SQLボタンを押して、「DELETE from wp_comments WHERE comment_approved = ‘0’;」ってSQLコマンドを実行
- 悪い奴らは消えた
承認済みコメントは「1」、未承認は「0」ですよ。なので、大切なコメントは承認してから、このコマンドを実行してくださいね。
あと、取り急ぎAkismetは使っておきな。
4つ目【投稿の帰属を変える】
adminってアカウントで、WP作って、そのまま投稿すると、adminさんの投稿になる。個人的な名前を使いたかったのに!という場合。一つ一つ変更していくのは面倒。
- ユーザーIDを知る必要があるので、 SQLウィンドウを開いて「SELECT ID, display_name FROM wp_users;」というSQLコマンドを実行
- ユーザーのリストが表示されるので、IDを確認。以下、新しいユーザーを「NEW_AUTHOR_ID」で、adminを「OLD_AUTHOR_ID」と置き換えて読んでね。
- 「UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID; 」というコマンドを実行。
そうすると、adminの書いたことになってた記事が、別のユーザーの記事に移るはず。
やっと5つ目【パスワードを手動でリセット!】
キャッシュカードと同じく、ブログを守るために、パスワードを誕生日以外に設定するのは賢いけど、忘れちゃったりするよね。
- SQLウィンドウを開いて、あなたがadminだとしたら、「
- UPDATE `wp_users` SET `user_pass` = MD5(‘PASSWORD’) WHERE `wp_users`.`user_login` =`admin` LIMIT 1; 」と。
- PASSWORDってとこに入れたパスワードに変わる
6つ目【ワードプレスのドメイン名を変える】
ドメイン名を変えるのはオススメしないけど、やんごとなき事情があるよね。
- SQLウィンドウを開いて、まずWPのURLを変えるために、元記事のとこのコマンドを入れる
- で、相対的URLを置き換えるコマンドを。これも元記事参照して
- もうほとんど終わり。で、絶対的URLがないか、チェックするコマンドを入れる
そうすれば、新しいURLのダッシュボードに入れます。
7つ目【ブログにSQLクエリの数を表示する】
ブログの読み込み時間をよくするには、クエリの数を知っておくのが大切。クエリを減らすには、ページにどんだけクエリが作られるのか、知りましょう。
- phpMyAdminに入らず! footer.phpにコードを書きましょう。 コードは元記事へ参照。
- で、ブログを見ると、クエリの数と、作るのにかかった時間が表示されてます。
ログインしたユーザーにしか表示されません。他の人やロボットが知る必要ないからね。
最後、8つ目【データベースを元の状態に戻す】
ちゃんとバックアップファイルを取ってあることが前提で、
- phpMyAdminに入って
- 「インポート」ボタンをクリック
- 「ブラウズ」で、バックアップしたファイルを探して、実行。
以上。
*ここまで
出てくるコマンド内で、「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'
とやるといいぜ
といった、自慢が書かれています。いろいろ知ってますねえ、みなさん。