【超危険】WordPressデータベースリビジョンお掃除

      2073文字

今回は、WordPressのリビジョンが、データベースに大量にたまっていたのでお掃除します。操作はプラグインではなく、phpmyadminから直接操作。SQLクエリを書いてやってもよさそうです。ただし、操作を間違えると記事が消えてしまう(超危険)ので、データベース操作に自信の無い方は一人で行わないでください(不安ならバックアップなども)。『リビジョンとは・データベースのどこにあるか・消し方・制限するには』などを、さっそく見ていきましょう。

WordPressリビジョンとは?

WPに搭載されている『保存済み下書き・公開済み投稿の更新記録を保存』する機能のことです。単語的な意味は『改訂』です。
使い方によっては便利で、保存されたリビジョンから、投稿の過去バージョンを復元できたりします(リビジョンが複数あれば、複数バージョンから選んで復元、みたいなこともできます)。

しかし、放置するとどんどんデータベース(wp〇〇〇_postsテーブル)にたまっていくので、人によっては回数を制限したり、無効にしたりもすることがあります。

WordPressリビジョンは、データベースのどこにあるか?


今回はお掃除プラグインとか入れずに、いらないリビジョンをサックリ消したいので、まずはデータベースでどこにあるか確認しましょう。phpmyadminでやってみます。上の段落でも述べた『wp〇〇〇_postsテーブル(〇〇〇は接頭辞)』内にあります。このテーブルは項目がいっぱいあるので、右にスライドさせていきます。


フィールド名は『post_type』。ここの値は『post(通常投稿)・page(固定ページ)・attachment(記事添付ファイル)・revision』があり、『revision』となっているものがリビジョンです

WPデータベースリビジョンお掃除(絞り込まないでやると記事が消えるので注意)


では、『WPデータベースリビジョンお掃除』をはじめます。まずはリビジョンで絞り込みます。以下のSQLを書くか、『検索』のタブで『revision』を入れて、likeまたは=で検索します。絞り込まないで削除ボタンを押すと記事が消えますので危険です(かならず絞り込んであるか確認します)。

SELECT * FROM `wp〇〇〇_posts`
WHERE `post_type` = ‘revision’
ORDER BY `wp〇〇〇_posts`.`ID` ASC
LIMIT 30 , 30


このように、リビジョンだけ絞り込まれました。表示列数やorderbyはやりやすいように指定してください。


一個一個削除は大変なので、『ページ表示されている件数分、全部選択』などをつかうとラクです。削除ボタンをおすと・・・


上のほうに実行するSQLクエリがでます。okであれば『はい』を押せば、リビジョンお掃除完了です。プラグイン無しでもできますね

いっぱいたまる前にリビジョン制限するという手もある(wp-config.php)


リビジョンを使わないというのであれば、制限することが可能です。プラグインで制限するとか、無効化して自動保存の分だけ残すみたいな手も。管理人が使っているのは、wp-config.phpに『define( ‘WP_POST_REVISIONS’, false );』と書いてしまうことです。

リビジョンを1個だけ残すときは『define( ‘WP_POST_REVISIONS’, 1 );』と書きます。

あとがき・まとめ

  • WPリビジョンは、プラグインなどなくても、データベースから消せる
  • リビジョン絞り込みしない、または値がpostになっているものを間違って消すと、記事の文章も消えるので注意
  • リビジョン制限をしたい場合はwp-config.phpを使う

まとめるとこんな感じでしょうか。速度に影響するほどの量ではありませんでしたが、ごちゃごちゃしているとわかりにくいので掃除してみました。間違ってpostを削除すると記事が消える危険性があるので、参考程度にとどめてください。

WordPressサイト制作&リニューアル・機能開発サービス | アトリエSS


【カテゴリ】 - PHP・データベースetc
【タグ】 -

  関連記事

WordPress記事一覧ページの『本文からの抜粋』を表示する関数と、その文字数の調整方法をチェックする
【WordPress別サーバー引っ越し】SQLエクスポート/インポート&Redirectionプラグインを使った方法
【別に止めなくてOK】WordPressサイトなどに、アメブロ・fc2など無料ブログの更新情報を表示して連携する方法
テスト環境(ローカル含む)でPHPサイト開発に使えるツール&xamppでやってみた例(設定や表示ファイルetc)
侍エンジニア塾ブログにあったPHPコードをシンプルに書いてみる(foreachで配列キーや値取得・continueで空要素スキップ)
WordPressの記事IDで判定して転送~PHP・headerとget_the_IDで対応、the_IDとの挙動の違いも
【WordPressで覚えよう】PHP「->」(オブジェクト演算子/アロー演算子)・「=>」(ダブルアロー演算子)の違い
【webサイトセキュリティ対策】検索フォームへのSQL判定などがある不正な入力を、WAFで遮断する
【PHP】GD関数『imagewebp』でのWebP変換方法&使えないポイント
PHP・mb_substr関数を使って、タイトル文字数を揃える(WPレイアウト調整)
【WordPressでPHPプログラムを学習シリーズ1】用語:PHP変数・関数・定数を、WPの機能を通して覚える
【WP記事取得クエリ・プラグイン無し】お知らせなどに使える、ショートコードで特定カテゴリ記事を表示プログラム